¿Como hacer una macro que me permita verificar, la coincidencia de un código y un artículo en una hoja 2 y hoja1

Necesito hacer una macro que me permita verificar, la coincidencia de un código y un artículo en una hoja 2 (en una misma fila), buscando el código en la hoja 1 y verificando si en la celda contigua está el mismo articulo.

Imagino describir el proceso de esta forma

  • Lea el código del articulo en la columna b de la hoja 2 y da b2
  • lea el articulo correspondiente a b2 en la columna c de la hoja 2 y da c2
  • busca, en la hoja 1 columna b, el código b2 lee la celda contigua en la columna c
  • si en la columna b de la hoja 1 está b2 y en la misma fila, columna contigua está c2, continua con la fila siguiente repitiendo el proceso
  • si no coinciden, resalta la fila y continúa el proceso

me gustaría aprender a hacerlo

1 respuesta

Respuesta
1

Visita:

Cursos de Excel y Macros

----- --

¿Quieres aprender a hacerlo?

El primer curso que te recomiendo es:

https://youtu.be/PupmVvM16-8 

Si son muchos datos, entonces te recomiendo utilizar matrices:

https://youtu.be/kvjmJF-5Tf0 

Revisa los cursos 1, 2 y 3 sobre Dictionary:

https://www.youtube.com/watch?v=f_x8pstpNqc&t=2s 

https://www.youtube.com/watch?v=oAQ4e-m_m7g&t=129s 

https://youtu.be/DI33KOtxcPk 

Sal u dos Dante Amor

¡Gracias! ya me suscribí a su canal, lo intentaré por ahí. Gracias nuevamente

Sub busca error codigo
hoja2.select
[A2].Select
While ActiveCell.Value <> ""
Set busco = Sheets("Hoja1").[B:B].Find(ActiveCell, LookIn:=xlValues, lookat:=xlWhole)

hasta acá entiendo que busca la hoja dos, selecciona el rango desde la fila dos y busca el valor en la hoja 1 en la columna B. Ahora necesitaría saber como hago para que compare el valor de la celda en la columna C de la hoja 2 y verifique si es el mismo valor en la celda C de la hoja 1. Ante todo gracias

Prueba la siguiente macro:

Sub buscar2()
  Dim c As Range
  For Each c In Sheets("Hoja2").Range("B2", Sheets("Hoja2").Range("B" & Rows.Count).End(3))
    If WorksheetFunction.CountIfs(Sheets("Hoja1").Range("B:B"), c.Value, Sheets("Hoja1").Range("C:C"), c.Offset(, 1).Value) = 0 Then
      c.Interior.Color = vbYellow
    End If
  Next
End Sub

Recomendaciones:

https://youtu.be/HjacjhcybzA 

Sal u dos Dante Amor

Ante todo mil gracias nuevamente. Sabes que me equivoqué en las columnas. De la hoja 2 serían A y B . De la hoja 1 serían B y D respectivamente, te pido una última molestia si puedes adecuarlo (yo lo intenté y me fue mal) GRACIAS MIL por las molestias

Prueba con lo siguiente:

Sub buscar2()
  Dim c As Range
  For Each c In Sheets("Hoja2").Range("A2", Sheets("Hoja2").Range("A" & Rows.Count).End(3))
    If WorksheetFunction.CountIfs(Sheets("Hoja1").Range("B:B"), c.Value, Sheets("Hoja1").Range("D:D"), c.Offset(, 1).Value) = 0 Then
      c.Interior.Color = vbYellow
    End If
  Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas