Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Recorre fila buscando y comparando datos de dos columnas en hojas distintas

Buscar datos en una necesidad en toda base de datos, son bastantes las macros que se dedican a ello con todas las variantes posibles que dependen de cada proyecto en especial, básicamente lo que se hace es un bucle que recorra la fila inicial hasta la última fila con datos; me preguntan en un foro sobre como buscar datos en dos hojas diferentes y copiar los datos coincidentes en la primer hoja, la variante es que para que coincidan los datos, debe haber coincidencia de datos en dos columnas de la hoja1 con dos columnas de la hoja.

Como se dijo, el fin de  la macro es buscar datos coincidentes, para lleva a cabo este proceso, se concatena las dos columnas que brindan el criterio por el cual se debe buscar, de esta manera, se vuelca en una variable dicho dato; lo mismo se hace con los datos de la hoja en donde se deben buscar los datos, procediendo a echar manos a un bucle mediante While … Wend, una vez encontrados los datos, estos son expuestos en la columna A, dejando en blanco obviamente la fila con los datos que no se hayan encontrado en  la hoja dos.

Existen otros post relacionados con la búsqueda de datos, la diferencia es que en combobox incrustado en hoja de Excel, los datos a buscar son seleccionados mediante un combobox, en el post mencionado se explicaba en detalle como incrustar un combobox  en la hoja de Excel y seleccionar ítems desde el mismo, acá existe una variante echando manos a un userform, la Macro realizada en VBA ejecuta un procedimiento muy similar, con la variante que en vez de estar incrustado en la hoja de Excel, el combobox está en un formulario, a lo que se agrega que se puede seleccionar el archivo donde buscar los datos.
 

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.

  

Si buscas en el blog te encontrarás con varios procedimientos de VBA relacionados con la búsqueda de datos a través de Macros de Excel; el post buscar datos en tres columnas muestra como tratar y buscar los datos de tres columnas a comparar; si  quieres más ejemplos sobre como buscar datos  te aconsejo ver  el ejemplo de macro sobre como buscar datos en todas las filas  en base  a criterios, ingresando al menú mapsite de este sitio,  encontrarás un listado de todos los procedimientos que están disponibles para descargar y ver su funcionamiento o adaptar a lo que se requiera para llevar a cabo las macros de Excel que se estén realizando.

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 Las 1000 mejores macros de Excelbuscar en listbox mientras escribes en textbox, como copiar tablas vinculadas de Excel a Wordconectar Excel con Access y muchos ejemplos más.

Código que se debe ingresar en un módulo, desde el link podrás descargar el ejemplo

Sub BuscaDatosCoicidentes()
Application.ScreenUpdating = False
Dim fila, fila1, conta As String
Dim d1, d2, d3, d4 As String
Dim con1, con2 As String
fila = 2
fila1 = 2
conta = 0

Sheets(«Hoja1»).Select
While Sheets(«Hoja1»).Cells(fila, 2) <> Empty
d1 = Sheets(«Hoja1»).Cells(fila, 2).Value
d2 = Sheets(«Hoja1»).Cells(fila, 3).Value
con1 = d1 & d2
  
    While Sheets(«Hoja2»).Cells(fila1, 1) <> Empty And conta = 0
    d3 = Sheets(«Hoja2»).Cells(fila1, 1).Value
    d4 = Sheets(«Hoja2»).Cells(fila1, 2).Value
    con2 = d3 & d4
   
        If con1 = con2 Then
            Sheets(«Hoja1»).Cells(fila, 1) = Sheets(«Hoja2»).Cells(fila1, 1)
            conta = 1
        Else
        fila1 = fila1 + 1
        End If
   
    Wend
conta = 0
fila1 = 2
fila = fila + 1
Wend
Application.ScreenUpdating = False
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      

Entradas relacionadas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Comentarios (8)

I’m the proprietor of JustCBD Store brand (justcbdstore.com) and I am currently aiming to grow my wholesale side of company. I really hope that anybody at targetdomain can help me . I considered that the most suitable way to do this would be to reach out to vape companies and cbd retailers. I was hoping if anybody at all could suggest a reliable website where I can purchase Vape Shop Leads I am presently looking at creativebeartech.com, theeliquidboutique.co.uk and wowitloveithaveit.com. Not exactly sure which one would be the most ideal selection and would appreciate any support on this. Or would it be easier for me to scrape my own leads? Suggestions?

Responder

You have made some really good points there. I checked on the net to find out more about the issue and found most individuals will go along with your views on this web site.

Responder

I used to be able to find good information from your articles.

Responder

The next time I read a blog, Hopefully it won’t fail me as much as this particular one. After all, I know it was my choice to read through, but I actually believed you’d have something helpful to talk about. All I hear is a bunch of crying about something you could possibly fix if you were not too busy searching for attention.

Responder

Nice post. I learn something new and challenging on sites I stumbleupon everyday. It will always be helpful to read through content from other authors and use a little something from other sites.

Responder

Hello, I think your blog might be having web browser compatibility problems. When I look at your web site in Safari, it looks fine however, if opening in Internet Explorer, it has some overlapping issues. I simply wanted to give you a quick heads up! Other than that, excellent blog!

Responder

Spot on with this write-up, I seriously think this web site needs a lot more attention. I’ll probably be returning to read more, thanks for the advice!

Responder

Right here is the right blog for everyone who really wants to understand this topic.

You understand so much its almost tough to argue with you (not that
I really will need to…HaHa). You certainly put a brand new spin on a subject which
has been discussed for many years. Great stuff, just excellent!

Responder