Contar registros en una base de datos y que me copie el resultado en otra hoja

Tengo una base de datos que es acumulativa, o sea todos los días se registran más de 100 productos y quisiera hacer un conteo por día y producto y que me lo copie en otra hoja para ir viendo las tendencias... ¿Es posible una macro para esto?

Por ejemplo. Yo registro para el vuelo 57 130 maletas escaneadas y el mismo día registro para el vuelo 130, 45 maletas escaneadas, pero el siguiente día realizo el mismo proceso y quiero contar cuantas maletas se escanean por vuelos diariamente

1 Respuesta

Respuesta
1

Usando la tabla de la duda anterior este es el resultado de la macro

y esta es la macro

Sub contar_maletas_diarias()
Dim funcion As WorksheetFunction
Set h2 = Worksheets("hoja2")
Set datos = Range("alldata").CurrentRegion
Set destino = h2.Range("c2").CurrentRegion
Set funcion = WorksheetFunction
With datos
    f = .Rows.Count: c = .Columns.Count
    Set datos = .Rows(2).Resize(f - 1, c)
    With destino
        fd = .Rows.Count: cd = .Columns.Count
        If fd > 1 Then
            Set destino = .Rows(fd + 1).Resize(f - 1, 3)
        Else
            Set destino = .Resize(f - 1, 3)
        End If
    Union(datos.Columns(1), datos.Columns(3)).Copy: destino.PasteSpecial
    .RemoveDuplicates Columns:=Array(1, 2)
    blancos = funcion.CountBlank(destino.Columns(1))
    If blancos > 0 Then Set destino = .Resize(.Rows.Count - blancos)
    For i = 1 To destino.Rows.Count
        fecha = .Cells(i, 1)
        vuelo = .Cells(i, 2)
        cuenta = funcion.CountIfs(datos.Columns(1), fecha, datos.Columns(3), vuelo)
        .Cells(i, 3) = cuenta
    Next i
    End With
    Set datos = Nothing: Set destino = Nothing: Set h2 = Nothing: Set funcion = Nothing
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas