Contar datos de una base de datos en excel
Tengo una macro que me cuenta los registros en una base de datos en excel, pero siempre que la aplico me repite los datos que ya se habían contado, alguien puede darme alguna idea de como solucionar esto. Esta es la macro. Es perfecta y fue construida por James Bond, pero me repite los datos que ya existen. Esta base de datos se actualiza diariamente y lo que necesito es que siempre que la corra, me agregue los valores nuevos después de los existentes pero solo cuente los nuevos registros ingresados.
Gracias a todos, SON UNOS genios!
Sub contar_maletas_diarias() Set h1 = Worksheets("Database") Set h2 = Worksheets("discrepance") With h1.Range("a2").CurrentRegion f = .Rows.Count - 1: c = .Columns.Count - 3 End With Set datos = h1.Range("a2").Resize(f, c) Set destino = h2.Range("a1").CurrentRegion f = datos.Rows.Count: c = datos.Columns.Count With destino fd = .Rows.Count: CD = .Columns.Count Set destino = .Rows(fd + 1).Resize(f, CD) Datos. Columns(1).Copy: .Cells(1, 1). PasteSpecial datos. Columns(3).Copy: .Cells(1, 2). PasteSpecial datos. Columns(4). Resize(datos. Rows. Count, 2).Copy: .Columns(4).Resize(fd, 2). PasteSpecial .RemoveDuplicates Columns:=Array(1, 2, 4, 5) CUENTAB = WorksheetFunction.CountA(.Columns(1)) For I = 1 To CUENTAB FECHA = .Cells(I, 1) VUELO = .Cells(I, 2) DEST = .Cells(I, 4) TIPO = destino.Cells(I, 5) AIRLINE = destino.Cells(I, 6) CUENTA = WorksheetFunction.CountIfs(datos.Columns(1), FECHA, datos.Columns(3), VUELO, _ datos.Columns(4), DEST, datos.Columns(5), TIPO) .Cells(I, 3) = CUENTA Next I CELDA1 = .Cells(1, 3).Address(False, False) CELDA2 = .Cells(1, 6).Address(False, False) .Cells(1, 7).Resize(CUENTAB, 1).Formula = "=IF(" & CELDA1 & "=" & CELDA2 & "," & """MATCH""" & "," & """NO MATCH""" & ")" .EntireColumn.AutoFit .HorizontalAlignment = xlCenter .Interior.ColorIndex = xlNone End With Set datos = Nothing: Set destino = Nothing End Sub
1 Respuesta
Respuesta de James Bond
1