Se puede hacer con VBA...

24/05/2006 - 15:47 por Eugeni | Informe spam
Hola a todos.

Es la primera vez que entro en los grupos de noticias, por lo que perdonad
si mi pregunta esá repetida.

Lo que quiero saber es si se puede realizar un bucle que recorra X columnas
del excel sin necesidad de poner las letras.

Como veréis soy muy nuevo en todo esto, y hasta ahora cuando quiero realizar
un bucle que me recorra las celdas de diferentes columnas y de fiferentes
filas
lo que hago es un bucle para las filas y le aplico el codigo repetido para
cada columna, como en este ejemplo :

For I = 1 To 18424
Range("D" & (I)).Select
ActiveCell.FormulaR1C1 = tri((I), 1)
Range("E" & (I)).Select
ActiveCell.FormulaR1C1 = tri((I), 2)
Range("F" & (I)).Select
ActiveCell.FormulaR1C1 = tri((I), 3)
Next I

pero si necesito que el bucle funcione por un numero de columnas que se
determinará una vez inicializado el codigo y que puede ser de muchas
columnas, no puedo hacerlo de esta manera.

En caso de que exista alguna manera de hacerlo, agradecería mucho que me
explicasen como.

Gracias de antemano.
Eugeni.

Preguntas similare

Leer las respuestas

#1 hotmail
24/05/2006 - 16:01 | Informe spam
Sí se puede.
Cuando recorres un rango casi siempre es mejor utilizar cells.

"Eugeni" escribió en el mensaje
news:
Hola a todos.

Es la primera vez que entro en los grupos de noticias, por lo que perdonad
si mi pregunta esá repetida.

Lo que quiero saber es si se puede realizar un bucle que recorra X
columnas del excel sin necesidad de poner las letras.

Como veréis soy muy nuevo en todo esto, y hasta ahora cuando quiero
realizar un bucle que me recorra las celdas de diferentes columnas y de
fiferentes filas
lo que hago es un bucle para las filas y le aplico el codigo repetido para
cada columna, como en este ejemplo :

For I = 1 To 18424
Range("D" & (I)).Select
ActiveCell.FormulaR1C1 = tri((I), 1)
Range("E" & (I)).Select
ActiveCell.FormulaR1C1 = tri((I), 2)
Range("F" & (I)).Select
ActiveCell.FormulaR1C1 = tri((I), 3)
Next I

pero si necesito que el bucle funcione por un numero de columnas que se
determinará una vez inicializado el codigo y que puede ser de muchas
columnas, no puedo hacerlo de esta manera.

En caso de que exista alguna manera de hacerlo, agradecería mucho que me
explicasen como.

Gracias de antemano.
Eugeni.

Respuesta Responder a este mensaje
#2 carmen
24/05/2006 - 16:23 | Informe spam
Si que se puede, y como te decian antes lo mejor es usar la
nomenclatura cells(i,j), donde i representa a la fila y j a la columna
de la celda.

Asi por ejemplo la celda A1 sera la cells(1,1)
la celda A2 sera la cells(2,1)
la celda B3 sera la cells(3,2), etc.
Si por ejemplo quieres recorrer las diez primeras celdas de la columna
A;

For i=1 To 10
cells(i,1).select
Next i

Espero que te haya servido de ayuda :)
Un saludo,
Carmen
Respuesta Responder a este mensaje
#3 Eugeni
24/05/2006 - 16:47 | Informe spam
Muchas gracias a ambos, tanto por la respuesta ( es genial y mejora mucho la
velocidad ), como por la prontitud de la respuesta.

Un Saludo.
Eugeni

"Eugeni" escribió en el mensaje
news:
Hola a todos.

Es la primera vez que entro en los grupos de noticias, por lo que perdonad
si mi pregunta esá repetida.

Lo que quiero saber es si se puede realizar un bucle que recorra X
columnas del excel sin necesidad de poner las letras.

Como veréis soy muy nuevo en todo esto, y hasta ahora cuando quiero
realizar un bucle que me recorra las celdas de diferentes columnas y de
fiferentes filas
lo que hago es un bucle para las filas y le aplico el codigo repetido para
cada columna, como en este ejemplo :

For I = 1 To 18424
Range("D" & (I)).Select
ActiveCell.FormulaR1C1 = tri((I), 1)
Range("E" & (I)).Select
ActiveCell.FormulaR1C1 = tri((I), 2)
Range("F" & (I)).Select
ActiveCell.FormulaR1C1 = tri((I), 3)
Next I

pero si necesito que el bucle funcione por un numero de columnas que se
determinará una vez inicializado el codigo y que puede ser de muchas
columnas, no puedo hacerlo de esta manera.

En caso de que exista alguna manera de hacerlo, agradecería mucho que me
explicasen como.

Gracias de antemano.
Eugeni.

Respuesta Responder a este mensaje
#4 grillo.pepe
25/05/2006 - 14:33 | Informe spam
Eugeni wrote:

Creo que lo mejor seria:

Crear un rango con nombre Menú Insertar > Nombre > Definir.

Le das un nombre al rango de celdas que quieras ejemplo "Datos".

Luego seria un bucle :

dim celda as range

for each celda in range("Datos")
Código necesario
next celda



Hola a todos.

Es la primera vez que entro en los grupos de noticias, por lo que perdonad
si mi pregunta esá repetida.

Lo que quiero saber es si se puede realizar un bucle que recorra X columnas
del excel sin necesidad de poner las letras.

Como veréis soy muy nuevo en todo esto, y hasta ahora cuando quiero realizar
un bucle que me recorra las celdas de diferentes columnas y de fiferentes
filas
lo que hago es un bucle para las filas y le aplico el codigo repetido para
cada columna, como en este ejemplo :

For I = 1 To 18424
Range("D" & (I)).Select
ActiveCell.FormulaR1C1 = tri((I), 1)
Range("E" & (I)).Select
ActiveCell.FormulaR1C1 = tri((I), 2)
Range("F" & (I)).Select
ActiveCell.FormulaR1C1 = tri((I), 3)
Next I

pero si necesito que el bucle funcione por un numero de columnas que se
determinará una vez inicializado el codigo y que puede ser de muchas
columnas, no puedo hacerlo de esta manera.

En caso de que exista alguna manera de hacerlo, agradecería mucho que me
explicasen como.

Gracias de antemano.
Eugeni.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida