Al copiar los datos de una hoja a otra necesito que si es la misma fecha no duplique, solo sume valores

Anteriormente me pasaste un codigo para copiar en Excel datos de una hoja a otra y lo hace a la perfeccion. (Muestro el codigo que tengo):

 Sub CopiarDatos()
Set h1 = Sheets("NOVIEMBRE")
Set h2 = Sheets("ARCHIVO")
u = h2.Range("A" & Rows.Count).End(xlUp).Row
nreg = Val(h2.Cells(u, "A")) + 1
u = u + 1
'
h2.Cells(u, "A") = h1.[k4]
h2.Cells(u, "B") = h1.[J9] '1
h2.Cells(u, "C") = h1.[J13] '2
h2.Cells(u, "D") = h1.[J14] '3
h2.Cells(u, "E") = h1.[J15] '4
h2.Cells(u, "F") = h1.[J16] '5
h2.Cells(u, "G") = h1.[J17] '6
h2.Cells(u, "H") = h1.[J20] '7
h2.Cells(u, "I") = h1.[J21] '8
h2.Cells(u, "J") = h1.[J22] '9
h2.Cells(u, "K") = h1.[J23] '10
h2.Cells(u, "L") = h1.[J26] '11
h2.Cells(u, "M") = h1.[J27] '12
.

.

.

(Asi hasta 114)
'
MsgBox "Datos copiados", vbInformation, "VENTAS"
End Sub

Bien, con este código me copia los datos bien. El caso es que la celda "K4" de la hoja origen es una fecha. Cada día cambio esa fecha e introduzco datos nuevos. Pero si por ejemplo hoy introduzco dos veces datos en la hoja de origen me genera dos filas de la misma fecha, y lo que necesito es que me sume los valores dejando solo una fila para cada fecha.

1 respuesta

Respuesta
1

Te anexo el código actualizado

Sub CopiarDatos()
'Act Por Dante Amor
    Set h1 = Sheets("NOVIEMBRE")
    Set h2 = Sheets("ARCHIVO")
    u = h2.Range("A" & Rows.Count).End(xlUp).Row
    nreg = Val(h2.Cells(u, "A")) + 1
    '
    Set b = h2.Columns("A").Find(h1.[K4], lookat:=xlWhole)
    If Not b Is Nothing Then
        '
        u = b.Row
        '
        'h2.Cells(u, "A") = h1.[K4]
        h2.Cells(u, "B") = h2.Cells(u, "B") + h1.[J9] '1
        h2.Cells(u, "C") = h2.Cells(u, "C") + h1.[J13] '2
        h2.Cells(u, "D") = h2.Cells(u, "D") + h1.[J14] '3
        h2.Cells(u, "E") = h2.Cells(u, "E") + h1.[J15] '4
        h2.Cells(u, "F") = h2.Cells(u, "F") + h1.[J16] '5
        h2.Cells(u, "G") = h2.Cells(u, "G") + h1.[J17] '6
        h2.Cells(u, "H") = h2.Cells(u, "H") + h1.[J20] '7
        h2.Cells(u, "I") = h2.Cells(u, "I") + h1.[J21] '8
        h2.Cells(u, "J") = h2.Cells(u, "J") + h1.[J22] '9
        h2.Cells(u, "K") = h2.Cells(u, "K") + h1.[J23] '10
        h2.Cells(u, "L") = h2.Cells(u, "L") + h1.[J26] '11
        h2.Cells(u, "M") = h2.Cells(u, "M") + h1.[J27] '12
        '
        '(Asi hasta 114)
        '
    Else
        u = u + 1
        '
        h2.Cells(u, "A") = h1.[K4]
        h2.Cells(u, "B") = h1.[J9] '1
        h2.Cells(u, "C") = h1.[J13] '2
        h2.Cells(u, "D") = h1.[J14] '3
        h2.Cells(u, "E") = h1.[J15] '4
        h2.Cells(u, "F") = h1.[J16] '5
        h2.Cells(u, "G") = h1.[J17] '6
        h2.Cells(u, "H") = h1.[J20] '7
        h2.Cells(u, "I") = h1.[J21] '8
        h2.Cells(u, "J") = h1.[J22] '9
        h2.Cells(u, "K") = h1.[J23] '10
        h2.Cells(u, "L") = h1.[J26] '11
        h2.Cells(u, "M") = h1.[J27] '12
        '
        '(Asi hasta 114)
        '
    End If
    MsgBox "Datos copiados", vbInformation, "VENTAS"
End Sub
La pregunta no admite más respuestas

Más respuestas relacionadas