Problema con fórmula sumar.si (excel)

A ver si consigo explicarme, porque es difícil de hacerlo.

Tengo esta macro:

Con esta macro lo que hago es, en la hoja "entradas_lista" inserto 45 filas (la cantidad de filas que tiene mi factura) arriba de la primera fila. Para despues copiar los datos de la factura (pueden ser dos filas como 20) en esas filas insertadas en la hoja "entradas_listas". Despues mediante la opcion "encontrar celdas en blanco" en la columna de productos, elimina las celdas que estan en blanco, quedandose solo los productos que he dado de alta (pueden ser dos filas como 20).

El problema viene a la hora de sumar las cantidades de cada producto en la hoja "articulos".

Si hago la función sumar. Si conforme tengo la hoja "entradas_listas me funciona perfecto, pero si añado otra entrada, entonces no me suma los productos.

He intentado detallar lo máximo posible, pero creo que no queda claro.

Alguna ayuda!

P.D. Si no queda claro, pregunten y contestaré.

1 Respuesta

Respuesta
1
Sub AÑADIR_ENTRADA()
'
' AÑADIR_ENTRADA Macro
'
'
    Sheets("ENTRADAS_LISTA").Select
    Rows("16:60").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
    With Selection.Font
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
    End With
    Sheets("ENTRADAS_NUEVA").Select
    Range("I19:J19").Select
    Selection.Copy
    Sheets("ENTRADAS_LISTA").Select
    Range("D16:D60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("ENTRADAS_NUEVA").Select
    Range("I20:J20").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ENTRADAS_LISTA").Select
    Range("E16:E60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("ENTRADAS_NUEVA").Select
    Range("I21:J21").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ENTRADAS_LISTA").Select
    Range("F16:F60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("F:F").EntireColumn.AutoFit
    Sheets("ENTRADAS_NUEVA").Select
    Range("I22:J22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ENTRADAS_LISTA").Select
    Range("G16:G60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("ENTRADAS_NUEVA").Select
    Range("I23:J23").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ENTRADAS_LISTA").Select
    Range("H16:H60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("ENTRADAS_NUEVA").Select
    Range("I24:J24").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ENTRADAS_LISTA").Select
    Range("I16:I60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("ENTRADAS_NUEVA").Select
    Range("D28:D72").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ENTRADAS_LISTA").Select
    Range("J16:J60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("D15").Select
    Columns("J:J").EntireColumn.AutoFit
    Sheets("ENTRADAS_NUEVA").Select
    Range("E28:E72").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ENTRADAS_LISTA").Select
    Range("K16:K61").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("ENTRADAS_NUEVA").Select
    Range("F28:F72").Select
    Application.CutCopyMode = False
    Selection. Copy
    

Se me olvidó dejar la macro, la divido en dos porque me dice que el mensaje es demasiado largo.

Y aquí la otra mitad

Sheets("ENTRADAS_LISTA").Select
    Range("L16:L60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("ENTRADAS_NUEVA").Select
    Range("G28:G72").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ENTRADAS_LISTA").Select
    Range("M16:M60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("ENTRADAS_NUEVA").Select
    Range("H28:H72").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ENTRADAS_LISTA").Select
    Range("N16:N60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("ENTRADAS_NUEVA").Select
    Range("I28:I72").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ENTRADAS_LISTA").Select
    Range("O16:O60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("ENTRADAS_NUEVA").Select
    Range("J28:J72").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ENTRADAS_LISTA").Select
    Range("P16:P60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("ENTRADAS_NUEVA").Select
    ActiveWindow.SmallScroll Down:=18
    Range("J75").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ENTRADAS_LISTA").Select
    Range("Q16:Q60").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("J16:J60").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Application.CutCopyMode = False
    Selection.EntireRow.Delete
    Range("D16").Select
    Sheets("ENTRADAS_NUEVA").Select
    ActiveWindow.SmallScroll Down:=-27
    Range("I20:J20").Select
    Selection.ClearContents
    Range("I22:J24").Select
    Selection.ClearContents
    Range("D28:D72").Select
    Selection.ClearContents
    Range("G28:G72").Select
    Selection.ClearContents
    Range("I28:I72").Select
    Selection.ClearContents
    ActiveWindow.SmallScroll Down:=-21
    Range("I20:J20").Select
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas