Copiar datos si no estaban previamente con Macro en excel

Quiero hacer formular una macro que me copie los valores de la columna M a la columna P siempre y cuando estos valores no se encontrasen previamente en la columna P.

2 respuestas

Respuesta

Intente con esta macro, en el ejemplo lo datos de la columna "L" los copia a la columna "P" verificando que no existan, adapte a su archivo de acuerdo en la ubicación de sus datos. Cualquier cosa comenta

Sub copiar()
uFd = Range("L" & Rows.Count).End(xlUp).Row
ufp = Range("P" & Rows.Count).End(xlUp).Row
    For i = 1 To uFd
        datoL = Cells(i, 12).Value
        For j = 1 To ufp
            datoP = Cells(j, 16).Value
            If datoL = datoP Then
                Exit For
            End If
        Next j
        If datoL = datoP Then
        Else
            ufp = ufp + 1
            Cells(ufp, 16).Value = datoL
        End If
    Next i
End Sub

Respuesta

Aquí otra macro para tu consideración:

Sub CopiarDatos()
  Dim c As Range, dic As Object
  Set dic = CreateObject("Scripting.Dictionary")
  For Each c In Range("P2", Range("P" & Rows.Count).End(3))
    dic(c.Value) = Empty
  Next
  For Each c In Range("M2", Range("M" & Rows.Count).End(3))
    If Not dic.exists(c.Value) Then Range("P" & Rows.Count).End(3)(2).Value = c.Value
  Next
End Sub

La macro asume que tus datos empiezan en M2 y P2.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas