Ugente. SendKeys

04/12/2009 - 20:18 por Desastres | Informe spam
Buenas tardes.
Sobre Celdas formato General se han modificado a Formato Numero y luego a Texto,. A una parte se le
pasó manualmente F2 y Enter . La ordenación es un Des As Tre.

El siguiente sub no produce el mismo efecto que : F2 y ENTER, ( Y solo son 40.000 líneas)

Suba a ()
Dim x as Long
Dim y As Long
Dim z as Long

x = val(inputbox("¿Fila"?))
y = val(Inputbox("¿Columna?"))
For z = x to y
activesheet.cells(bucle,Y).activate ' o select
sendkeys "{F2"}
sendkeys "{Enter}"
next z
end sub

excúsense, si los hubiera , errores de sintaxis

¿En padonde meto la pata?

¿Otra Forma de hacerlo?

Saludos y ... Excel entes vibraciones
Des As Tres No imprimas, ganemos un árbol... o tres hojinas.

Preguntas similare

Leer las respuestas

#21 Héctor Miguel
10/12/2009 - 02:50 | Informe spam
hola, Des !

El sistema de ordenación de series que indicas le conozco. Pero que dé el resultado de tu segundo ejemplo con mezcla de datos, no.
Preguntaba por el sendkeys, pensando que serviría para algo. En este caso, pero por lo que detallas ahora veo que no.
Quizas la pregunta hubiera debido ser: como cambiar los datos de un formato al otro
y que sea verdad el que los cambios se produzcan, no apariencia ...



la propuesta seguiria siendo (casi) igual, usar dos instrucciones aplicadas sobre el mismo rango
p.e. desde la ventana de inmediato y suponiendo el rango [B2:B6] (y obviamente dependiendo del tipo de datos ?)

[b2:b6].numberformat = "@"
[b2:b6].value = [transpose(transpose(text(b2:b6,"0")))]

saludos,
hector.
Respuesta Responder a este mensaje
#22 Desastres
10/12/2009 - 11:35 | Informe spam
Hola Héctor.Gracias.
Este método no lo conocía y lo probaré. Probado.Funciona.

Pero, disculpa el que sea cazurro, lo que busco no solo es el resultado, con lo que me dice Pepe,
aparentemente, ( aunque estoy inseguro por lo que ocurre en el caso de las celdas con formato
científico) lo obtengo en lo casos que probé.
Pero quisiera conseguirlo, en tiempo de ejecución.
Por mas que funcione en un momento concreto, a partir de ese momento se "van a seguir produciendo
discordancias de tipo de datos", por que en este momento no puedo desviar tiempos para ello.
Una de las actuaciones más delicadas la tendré que hacer
1- Por ordenación, en tiempo de elección
2- por comparación celda con celda.offset(-1,0)
Como veras, esto puede dar un resultado cabreante y puedes perder todo el trabajo acumulado o si no
me doy cuenta...( prefiero no pensarlo)

El problema no está solo en un columna concreta. Algunas BBDD tienen hasta unas 20 columnas por las
cuales se puede necesitar "comparar"( ¿se dice indexar?), para hacer el trabajo, y no conozco todas,
y no las tengo "presentes"
lo mejor sería un bucle en el que primero modificara formato ( si es posible ), y luego lo que
hiciera falta.

¿Puedes decirme como funciona exactamente transpose, aquí. Lo que encuentro se refiere a
movimientos de rangos


Saludos y ... Excel entes vibraciones
Des As Tres No imprimas, ganemos un árbol... o tres hojinas.
"Héctor Miguel" escribió en el mensaje
news:
hola, Des !

> El sistema de ordenación de series que indicas le conozco. Pero que dé el resultado de tu


segundo ejemplo con mezcla de datos, no.
> Preguntaba por el sendkeys, pensando que serviría para algo. En este caso, pero por lo que


detallas ahora veo que no.
> Quizas la pregunta hubiera debido ser: como cambiar los datos de un formato al otro
> y que sea verdad el que los cambios se produzcan, no apariencia ...

la propuesta seguiria siendo (casi) igual, usar dos instrucciones aplicadas sobre el mismo rango
p.e. desde la ventana de inmediato y suponiendo el rango [B2:B6] (y obviamente dependiendo del


tipo de datos ?)

[b2:b6].numberformat = "@"
[b2:b6].value = [transpose(transpose(text(b2:b6,"0")))]

saludos,
hector.


Respuesta Responder a este mensaje
#23 Héctor Miguel
10/12/2009 - 23:23 | Informe spam
hola, Des !

la parte de los comentarios con relacion a la propuesta de pepe, le dejo de tu lado
(perdona, pero desconozco todas las eventualidades e imponderables que pudieran tener ingerencia en el caso a resolver) -???-

en cuanto a esta parte de esta consulta...
El problema no esta solo en un columna concreta. Algunas BBDD tienen hasta unas 20 columnas
por las cuales se puede necesitar "comparar"(se dice indexar?), para hacer el trabajo, y no conozco todas, y no las tengo "presentes"
lo mejor sería un bucle en el que primero modificara formato (si es posible), y luego lo que hiciera falta.

Puedes decirme como funciona exactamente transpose, aqui. Lo que encuentro se refiere a movimientos de rangos



para entender con este ejemplo lo que hace transpose:

- escribe en [B2:B6] los numeros 1 a 4

- pon en [C2:D2] las formulas:
[C2] =esnumero(b2)
[D2] =estexto(b2)

- copia/pega (o escribe) en la ventana de inmediato las dos instrucciones propuestas
[b2:b6].numberformat = "@"
[b2:b6].value = [transpose(transpose(text(b2:b6,"0")))]

- ajusta la ventana de vba para que veas la hoja con el rango [A1:D10]

- selecciona el final de la linea1 en la ventana de inmediato y pulsa {enter}
=> veras que los numeros se alinean a la izquierda pero los resultados de las formulas no cambian

- selecciona el final de la linea2 en la ventana de inmediato y pulsa {enter}
=> nota como cambian los resultados de las formulas a su inverso (verdadero / falso <-> falso / verdadero)

ahora si... que hace o como funciona y porque funciona el transpose de esta manera ???

1) un bucle en vba (elemento por elemento) suele devolver los resultados esperados, pero pudiera ser "leennnto"
2) una matriz puede devolver su conjunto de elementos mas rapido (algo asi como un .CopyFromRecordset en ADO)
3) las matrices en vba son promordialmente en columnas
4) el transpose interno convierte (LOS VALORES d)el rango de filas a columnas
5) el transpose externo (re)convierte de columnas a filas (continuan siendo LOS VALORES)

al final de cuentas, con la segunda instruccion estas (re)escribendo los valores en el rango de filas (de golpe, NO por bucles)

si cualquier duda... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida