Ciclo for en macro excel

Buen dia a todos.
Estoy haciendo una macro en la cual copia el dato de la celda b3 de mi hoja1 y lo busca en mi hoja2, la cual tiene un listado de materiales, después de encontrarlo copia la columna 3 de la fila encontrada de la hoja 2 y la pega en la hoja1 en la celda e3.
Lo que pasa es que también tengo datos en las celdas b4,b5,b6,b7....de la hoja1, quiero hacer una ciclo el cual me repita la acción hasta que ya no encuentre valores en la columna b.
mi código es el siguiente:
Sub Macro2()
'
' Macro2 Macro
'
' Acceso directo: CTRL+f
Range("b3").Select
Do Until IsEmpty(ActiveCell)
x = ActiveCell.Offset(1, 0).Select
valor = Range("b3").Value
Set busca = Sheets("Hoja2").Range("a2:a" & Sheets("Hoja2").Range("a65000").End(xlUp).Row).Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
ubica = busca.Address
Sheets("Hoja2").Range(ubica).Offset(0, 3).Copy Destination:=Sheets("Hoja1").Range("b3").Offset(0, 3)
End If
Loop
End Sub
este código si recorre todas las celdas pero no me repite la acción, solo lo hace para la celda b3.
espero y me puedan ayudar.
gracias

1 respuesta

Respuesta
1

Sub Macro2()
'
' Macro2 Macro
'
' Acceso directo: CTRL+f

dim fila as double ' La fila es el 3

dim col as string ' La columna es la "b"

dim celda as string ' La combinación de los 2, o sea "b3"

col ="b"

fila=3

Range(col+cstr(fila)).Select 'Esto lo he dejado pero no hace falta
' Esto significa mientras el contenido de la celda sea diferente de que la celda no tenga nada escrito
while(Range(col+cstr(fila))<>"")

celda=col+cstr(fila)
'La x no se para que la quieres
x = ActiveCell.Offset(1, 0).Select
valor = Range(celda)
Set busca = Sheets("Hoja2").Range("a2:a" & Sheets("Hoja2").Range("a65535").End(xlUp).Row).Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
ubica = busca.Address
Sheets("Hoja2").Range(ubica).Offset(0, 3).Copy Destination:=Sheets("Hoja1").Range(celda).Offset(0, 3)
End If

i=i+1

wend
End Sub

Si ya esta la respuesta, finaliza la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas