Actualizar una hoja1 de otra hoja 2

Me pasaron este código:

Sub COPIAR()
Dim UNICOS As New Collection
Set H1 = Worksheets("HOJA1")
Set H2 = Worksheets("HOJA2")
Set DATOS = H1.Range("A1").CurrentRegion
Set ACTUAL = H2.Range("A1").CurrentRegion
AFILAS = ACTUAL.Rows.Count
ACTUAL.Sort KEY1:=H2.Range(ACTUAL.Columns(1).Address), ORDER1:=xlAscending, Header:=xlYes
With DATOS
    Set DATOS = .Rows(2).Resize(.Rows.Count - 1, .Columns.Count)
    .Sort KEY1:=H1.Range(.Columns(1).Address), ORDER1:=xlAscending
    DFILAS = .Rows.Count:    RESTA = AFILAS - DFILAS
    If RESTA = 0 Then GoTo FIN
    Set NUEVOS = .Rows(DFILAS + 1).Resize(RESTA, 1)
    x = 1
    With ACTUAL
        For I = 2 To .Rows.Count
            NOMBRE = .Cells(I, 1)
            On Error Resume Next
            BUSCA = WorksheetFunction.Match(NOMBRE, DATOS.Columns(1), 0)
            If Err.Number > 0 Then NUEVOS.Cells(x, 1) = NOMBRE: x = x + 1
            On Error GoTo 0
        Next I
    End With
    Set DATOS = .CurrentRegion
     .Sort KEY1:=H1.Range(.Columns(1).Address), ORDER1:=xlAscending, Header:=xlYes
End With
FIN:
End Sub

Para poder también actualizar la columna B que tendría que añadir

1 respuesta

Respuesta
1

Y con cuál dato se debe actualizar. Es decir de dónde se toma y en dónde se pone, puedes describirlo con un ejemplo, utiliza imágenes para describir el ejemplo.

Actualizar Hoja 2 en Hoja 1

Ejemplo: ANUTA MIRZA no esta en la hoja 1

Quiero actualizar: ANUTA MIRZA + 1656

Ahora con ese código SOLO ME ACTUALIZA EL NOMBRE.

Te anexo la macro para actualizar las 2 columnas

Sub Actualizar_Hoja1()
'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"), lookat:=xlWhole)
        If b Is Nothing Then
            u = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
            h2.Range("A" & i & ":B" & i).Copy h1.Range("A" & u)
        End If
    Next
    Set r = h1.Range("A1").CurrentRegion
    r.Sort Key1:=h1.Range(r.Columns(1).Address), Order1:=xlAscending, Header:=xlYes
    MsgBox "Fin"
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas