Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Se puede hacer con VBA...

0 views
Skip to first unread message

Eugeni

unread,
May 24, 2006, 9:47:05 AM5/24/06
to
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.


hotmail

unread,
May 24, 2006, 10:01:50 AM5/24/06
to
Sí se puede.
Cuando recorres un rango casi siempre es mejor utilizar cells.

"Eugeni" <eug...@labotigadelcabell.com> escribió en el mensaje
news:eccJNizf...@TK2MSFTNGP04.phx.gbl...

carmen

unread,
May 24, 2006, 10:23:01 AM5/24/06
to
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

Eugeni

unread,
May 24, 2006, 10:47:52 AM5/24/06
to
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" <eug...@labotigadelcabell.com> escribió en el mensaje
news:eccJNizf...@TK2MSFTNGP04.phx.gbl...

Peluchon

unread,
May 25, 2006, 8:33:10 AM5/25/06
to
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

0 new messages