Trasladar datos de una tarifa nueva a tarifa vieja

Para Dante Amor

Tengo una Hoja "Tarifa vieja", donde utilizo cinco columnas

Columna (A:A) Referencia del artículo

Columna (B:B) Descripcion del artículo

Columna (C:C) Precio del artículo

La columna (D:D) va  con una fórmula y en la columna (G:G) con mucho esfuerzo y a mano he metido el código de barras de cada artículo que tengo en stock.

Ahora me mandan una "Tarifa nueva", ¡PERO!  no corresponden exactamente unas filas con otras, ya que o han quitado algún artículo o han incorporado alguno nuevo, por lo que no puedo copiar y pegar directamente.

Quisiera una macro que recorra la columna (A:A), me busque cada referencia de la tarifa nueva en la tarifa vieja. Si la encuentra me pegue el precio de la tarifa nueva en la columna  (E:E) y la fila correspondiente de la tarifa vieja.

Y si no está el artículo de la tarifa nueva, en la tarifa vieja, copie toda la fila de éste artículo debajo de la última fila de la tarifa vieja, pero el precio que está en la columna (C:C) lo ponga en la columna (E:E), para diferenciar éstos artículos nuevos.

Luego una vez puestos y revisados los dos precios (viejo y nuevo) los manejo con fórmulas, filtros, copiar y pegar.

1 Respuesta

Respuesta
1

Te faltó comentar en dónde tienes las tarifas nuevas, ¿en otra hoja?

Supongo que las columnas de la tarifa nueva están así:

"A" Referencia del artículo

"B" Descripción

"C" Tarifa nueva

Antes de empezar la macro, me puedes confirmar los datos.

Confirmado 

Tarifa nueva en otra hoja

y las columnas como indicas

Te anexo la macro

Sub tarijas()
'por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
        Set b = h1.Columns("A").Find(h2.Cells(i, "A"))
        If Not b Is Nothing Then
            h1.Cells(b.Row, "E") = h2.Cells(i, "C")
        Else
            u = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
            h1.Cells(u, "A") = h2.Cells(i, "A")
            h1.Cells(u, "B") = h2.Cells(i, "B")
            h1.Cells(u, "E") = h2.Cells(i, "C")
        End If
    Next
    MsgBox "Tarifas actualizadas"
End Sub

Saludos.DAM

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas