Quiero formular una macro de evento de modo que al ingresar datos en la columna A me sume automáticamente

Para: Elsa, quiero una macro de evento que al ingresar datos en la columna A me sume en automático ya sea con el sumar conjunto o sumar si para saber mi existencia y la suma que aparezca en la columna "D" o "E"

1.-. El rango es columna "B"

2. Criterio es lo que ingreso en la Col "A"

3. Rango suma columna "c"

Columna donde deseo el resultado columna "D" o "E"

1 respuesta

Respuesta
2

Como lo expliqué en otra consulta similar, al evento Change hay que acotarlo para que no se ejecute con cualquier cambio en la hoja sino solo en las celdas o rangos que necesites.

Tu macro quedaría así entonces:

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'no es necesario activar la hoja porque la macro está en esta hoja
'Sheets("Hoja1").Activate
'si debe ejecutarse al cambio en col A se excluyen las demás
If Target.Column <> 1 Then Exit Sub
Fini = Range("B" & Rows.Count).End(xlUp).Row
Totsa = Application.WorksheetFunction.SumIf(Range("B1:B" & Fini), Range("A2"), Range("C1:C" & Fini))
totsan = Application.WorksheetFunction.SumIf(Range("B1:B" & Fini), Range("A3"), Range("C1:C" & Fini))
totcuan = Application.WorksheetFunction.SumIf(Range("B1:B" & Fini), Range("A4"), Range("C1:C" & Fini))
totchal = Application.WorksheetFunction.SumIf(Range("B1:B" & Fini), Range("A5"), Range("C1:C" & Fini))
totced = Application.WorksheetFunction.SumIf(Range("B1:B" & Fini), Range("A6"), Range("C1:C" & Fini))
'al colocar valores a col E no se ejecutará la macro por la 1er instrucción
Range("E2") = Totsa
Range("E3") = totsan
Range("E4") = totcuan
Range("E5") = totchal
Range("E6") = totced
End Sub

Ahora, si es tal como me pareció tu libro, que en realidad debiera ejecutarse cada vez que ingresas algo en col B, solo cambia la 1er instrucción indicando <> 2.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas