Comparar listados con columna EAN columna PRECIO y crear una tercera donde ponga Columna EAN, Columna PRECIO1 y columna PRECIO2

Tengo varios listados con la columna1 con "códigos de barras", la columna2 con "descripción del producto" y la columna3 con "precios".

Querría comparar los diferentes precios creando otro listado. Quedando:
Columna1 con "códigos de barras", la columna2 con "descripción del producto", la columna3 con "precios1", columna4 con "precios2"

En los listados puede ocurrir que algunos productos estén en un listado y en otro no.

¿Es imposible esto que pido?

1 respuesta

Respuesta
1

Me puedes enviar tu archivo con 2 hojas, en la hoja1 me pones algunos ejemplos de la información que tienes y en la hoja 2 me pones cómo quieres el resultado de los datos.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Jorge Campos” y el título de esta pregunta.

¡Gracias! Ya te he enviado el mail.

Te anexo la macro para comparar.

Sub CompararEan()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    Set h3 = Sheets("Hoja3")
    h3.Cells.Clear
    h3.Range("A1:D1") = Array("EAN", "Descripción", "Precio1", "Precio2")
    j = 2
    h2.Columns("Z").ClearContents
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        Set b = h2.Columns("A").Find(h1.Cells(i, "A"), lookat:=xlWhole)
        If Not b Is Nothing Then
            h3.Cells(j, "A") = h1.Cells(i, "A")
            h3.Cells(j, "B") = h1.Cells(i, "B")
            h3.Cells(j, "C") = h1.Cells(i, "C")
            h3.Cells(j, "D") = h2.Cells(b.Row, "C")
            h2.Cells(b.Row, "Z") = "X"
        Else
            h3.Cells(j, "A") = h1.Cells(i, "A")
            h3.Cells(j, "B") = h1.Cells(i, "B")
            h3.Cells(j, "C") = h1.Cells(i, "C")
        End If
        j = j + 1
    Next
    For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
        If h2.Cells(i, "Z") = "" Then
            h3.Cells(j, "A") = h2.Cells(i, "A")
            h3.Cells(j, "B") = h2.Cells(i, "B")
            h3.Cells(j, "D") = h2.Cells(i, "C")
            j = j + 1
        End If
    Next
    MsgBox "Proceso terminado"
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: CompararEan
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Saludos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas