Cómo cambio dinámicamente la columna en Macro????

19/08/2003 - 16:26 por cg | Informe spam
Tengo una macro en la cual tengo que ir pasando luego de
un ciclo FOR de la columna A a la B, luego a la C, etc.
Hasta ahora como eran pocas columnas tenía un Select en
el cual ponía luego que finalizaba el ciclo FOR:


Select Case LetraColumna

Case "A"
LetraColumna = "B"
Case "B"
LetraColumna = "C"
Case "C"
LetraColumna = "D"
Case "D"
LetraColumna = "E"
Case "E"
LetraColumna = "F"

end select

Pero ahora tengo un montón más de columnas.
Cómo puedo hacer para que dinámicamente me vaya una
columna más luego de cada ciclo FOR????
Algo parecido a LetraColumna = LetraColumna + 1 ó algo
por el estilo.

Cómo hago??????

Preguntas similare

Leer las respuestas

#1 Camilo Báthory
19/08/2003 - 17:21 | Informe spam
Lo podes hacer con el comando OffSet

ActiveCell.OffSet(Filas,Columnas).Select

Para pasar de una columna a la siguiente:
ActiveCell.OffSet(0,1).Select

Suerte!!!!



Tengo una macro en la cual tengo que ir pasando luego de
un ciclo FOR de la columna A a la B, luego a la C, etc.
Hasta ahora como eran pocas columnas tenía un Select en
el cual ponía luego que finalizaba el ciclo FOR:


Select Case LetraColumna

Case "A"
LetraColumna = "B"
Case "B"
LetraColumna = "C"
Case "C"
LetraColumna = "D"
Case "D"
LetraColumna = "E"
Case "E"
LetraColumna = "F"

end select

Pero ahora tengo un montón más de columnas.
Cómo puedo hacer para que dinámicamente me vaya una
columna más luego de cada ciclo FOR????
Algo parecido a LetraColumna = LetraColumna + 1 ó algo
por el estilo.

Cómo hago??????

.

Respuesta Responder a este mensaje
#2 cg
19/08/2003 - 17:30 | Informe spam
Gracias pero por ahí me exprese mal...
En realidad por como tengo armada la macro necesito
sumarle 1 a letra columna es decir si la variable de tipo
string LetraColumna tiene el valor C ejecutar una
instrucción para que tome el valor D, si tiene D que tome
E y así sucesivamente... (algo como LetraColumna =
LetraColumna + 1)

Cómo hago para hacer esto???
Muchas gracias!!!


Lo podes hacer con el comando OffSet

ActiveCell.OffSet(Filas,Columnas).Select

Para pasar de una columna a la siguiente:
ActiveCell.OffSet(0,1).Select

Suerte!!!!



Tengo una macro en la cual tengo que ir pasando luego




de
un ciclo FOR de la columna A a la B, luego a la C, etc.
Hasta ahora como eran pocas columnas tenía un Select en
el cual ponía luego que finalizaba el ciclo FOR:


Select Case LetraColumna

Case "A"
LetraColumna = "B"
Case "B"
LetraColumna = "C"
Case "C"
LetraColumna = "D"
Case "D"
LetraColumna = "E"
Case "E"
LetraColumna = "F"

end select

Pero ahora tengo un montón más de columnas.
Cómo puedo hacer para que dinámicamente me vaya una
columna más luego de cada ciclo FOR????
Algo parecido a LetraColumna = LetraColumna + 1 ó




algo
por el estilo.

Cómo hago??????

.



.

Respuesta Responder a este mensaje
#3 - José Luis -
19/08/2003 - 18:36 | Informe spam
1. En vez de Range, puedes usar Cells(fila,Columna).value por ejemplo, donde
Columna es el número de columna y no la letra

2. Haz una funcion en un modulo aparte

Function Columna_Nombre(NumCol)
Dim Col(256)
Col(0) = "A"
Col(1) = "B"
Col(2) = "C"
...
Col(255) = "IV"
End Function


y puedes dentro de un for:

For I=0 to 10

MsgBox ( Columna_Nombre(I) )

Next I

"cg" escribió en el mensaje
news:0e5801c36666$ddbe9d20$
Gracias pero por ahí me exprese mal...
En realidad por como tengo armada la macro necesito
sumarle 1 a letra columna es decir si la variable de tipo
string LetraColumna tiene el valor C ejecutar una
instrucción para que tome el valor D, si tiene D que tome
E y así sucesivamente... (algo como LetraColumna LetraColumna + 1)

Cómo hago para hacer esto???
Muchas gracias!!!


Lo podes hacer con el comando OffSet

ActiveCell.OffSet(Filas,Columnas).Select

Para pasar de una columna a la siguiente:
ActiveCell.OffSet(0,1).Select

Suerte!!!!



Tengo una macro en la cual tengo que ir pasando luego




de
un ciclo FOR de la columna A a la B, luego a la C, etc.
Hasta ahora como eran pocas columnas tenía un Select en
el cual ponía luego que finalizaba el ciclo FOR:


Select Case LetraColumna

Case "A"
LetraColumna = "B"
Case "B"
LetraColumna = "C"
Case "C"
LetraColumna = "D"
Case "D"
LetraColumna = "E"
Case "E"
LetraColumna = "F"

end select

Pero ahora tengo un montón más de columnas.
Cómo puedo hacer para que dinámicamente me vaya una
columna más luego de cada ciclo FOR????
Algo parecido a LetraColumna = LetraColumna + 1 ó




algo
por el estilo.

Cómo hago??????

.



.

Respuesta Responder a este mensaje
#4 Fernando Arroyo
19/08/2003 - 19:06 | Informe spam
En VBA las columnas también pueden referenciarse por su número (A=1, B=2, etc.). ¿No sería más sencillo adaptar tu código a esta forma de trabajar?.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"cg" escribió en el mensaje news:0d4101c3665d$ef6bb1b0$
Tengo una macro en la cual tengo que ir pasando luego de
un ciclo FOR de la columna A a la B, luego a la C, etc.
Hasta ahora como eran pocas columnas tenía un Select en
el cual ponía luego que finalizaba el ciclo FOR:


Select Case LetraColumna

Case "A"
LetraColumna = "B"
Case "B"
LetraColumna = "C"
Case "C"
LetraColumna = "D"
Case "D"
LetraColumna = "E"
Case "E"
LetraColumna = "F"

end select

Pero ahora tengo un montón más de columnas.
Cómo puedo hacer para que dinámicamente me vaya una
columna más luego de cada ciclo FOR????
Algo parecido a LetraColumna = LetraColumna + 1 ó algo
por el estilo.

Cómo hago??????
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida