Registros nuevos en una hoja

Tengo un problema y no se como solucionarlo

Tengo dos hojas de calculo una llamada Anual y otra Mes, en la anual vuelco los datos de los clientes del mes en curso, el problema es que los clientes aumentan todos los meses, y la única forma que he conozco es pegar todos los registros en la hoja anual, detectar los duplicados y los nuevos borrando los duplicados y dejando los nuevos, mi pregunta hay alguna forma de automatizar el sistema de forma que me añada a la hoja Anual los nuevos

2 Respuestas

Respuesta
1

[Hola Ignacio. Aquí te dejo una muestra, como no das mucha información, debes modificar el rango del código a tu criterio.

COPIA DE LA HOJA "Mes" Y LA PEGA EN LA "Anual"
Sub CopiarHojas()
Sheets("Mes").Range("A1:C10").Copy Destination:=Sheets("Anual").Range("J1")
Application.CutCopyMode = False
End Sub

Salu2 Carlos Arrocha

Respuesta
1

Esta macro realiza una comparación de la columna clientes en ambas hojas esta en la columna A, de encontrar que ya existe el cliente no lo copia, si no existe copia toda la fila de la hoja mensual a la hoja anual

Sub copiar_nuevos()
Dim h1, h2 As Worksheet
Dim anual, meses As Range
Dim aarray, marray As Variant
Dim filas, col, i As Long
Set h1 = Worksheets("mes")
Set h2 = Worksheets("anual")
Set anual = h2.Range("a1").CurrentRegion
Set meses = h1.Range("a1").CurrentRegion
marray = meses
filas = UBound(marray)
For i = 1 To filas
    cliente = marray(i, 1)
    cuenta = WorksheetFunction.CountIf(anual.Columns(1), cliente)
    If cuenta = 0 Then
        filas_a = anual.CurrentRegion.Rows.Count
        fila = WorksheetFunction.Index(marray, i, 0)
        h2.Range(anual.Rows(filas_a + 1).Address) = fila
    End If
Next i
Set h1 = Nothing
Set h2 = Nothing
Set anual = Nothing
Set meses = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas