Macro recorre filas, busca, copia y pega datos





En este post voy a mostrar una macro que recorre las filas buscando un dato cuando lo encuentra copia los datos y los pega en otra hoja, algo parecido se expuso en recorre filas busca y copia o quizás te ayude recorrer filas buscando y comparando datos, recorrer filas y contar celdas con datos, recorrer filas y copiar de la columna A a la B hay varios ejemplos que encontrarás aquí.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.




  

El ejemplo de macro de VBA, tiene por objeto tomar una serie de datos que se encuentran en la columna A hasta la última fila con datos, luego busca en los códigos o valores de la columna D, una vez que se encontró el dato es pegado en la columna A a la E, pero de la Hoja2.

Se debe notar que se realizan dos bucles, uno dentro del otro, el primer bucle permite recorrer todos los datos de la columna A, que luego son buscados en la Columna D, si no encuentra el dato en la columna D pasa a la fila siguiente hasta la última fila con datos, luego vuelve a tomar el segundo dato de la columna A y a Buscar en la columna D y así sucesivamente hasta que se llegue hasta el último dato o última fila con datos.

Encontrados los datos son copiados en la hoja dos, se empieza en la fila dos y se van adicionando copiando en la fila siguiente a la última celda ocupada.

El ejemplo de macro que utiliza que recorre todas la filas, luego busca en un rango de datos y copia en otra hoja, se puede descargar desde el link del final de este post, una vez descargado el ejemplo se presiona el botón que dice "Macro" y se ejecuta la macro realizando la búsqueda de datos, el código es libre y se puede modificar y adaptar a la necesidad de cada uno.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.





Código que se inserta en un userform



Sub BuscarDatos()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
Dim conta As Integer
f = 2
f1 = 2
f2 = 2
Sheets("Hoja2").Cells.Clear
Sheets("Hoja1").Range("D" & 1 & ":H" & 1).Copy Destination:=Sheets("Hoja2").Range("A" & 1)
Sheets("Hoja1").Select
Cells(f, 1).Select
While Cells(f, 1) <> Empty
dato = Cells(f, 1)

   While Cells(f1, 4) <> Empty
   dato1 = Cells(f1, 4)
    If dato = dato1 Then
    Sheets("Hoja1").Range("D" & f1 & ":H" & f1).Copy Destination:=Sheets("Hoja2").Range("A" & f2)
    conta = conta + 1
    f2 = f2 + 1
    End If
   f1 = f1 + 1
   Wend
f1 = 2
f = f + 1
Wend

uf = Sheets("Hoja2").Range("C" & Rows.Count).End(xlUp).Row
Sheets("Hoja2").Range("C" & 2 & ":E" & uf).NumberFormat = "#,##0.00"
If conta = 0 Then
MsgBox ("No se encontró el código buscado"), vbInformation, "AVISO"
Else
MsgBox ("Se copiaron con éxito " & conta & " códigos"), vbInformation, "AVISO"
End If
DisplayAlerts = True
Application.ScreenUpdating = True
End Sub



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends