VBA Excel: cómo mostrar una alerta cuando la sum de filas de una columna cruza un valor específico?

enter image description here

Tengo dos columnas como se muestra arriba. ¿Cómo puedo mostrar un cuadro de alerta cuando un usuario ingresa una fila y la sum del salario de la columna es mayor que 1000000?

Suponga que el "Salario" está en la columna B.

Private Sub Worksheet_Change(ByVal Target As Range) Total = Application.WorksheetFunction.Sum(Columns("B:B")) If Total >= 1000000 Then MsgBox "My message", vbCritical, "Error" End If End Sub 

Si no está vinculado a VBA, puede lograrlo utilizando Data Validation . En Excel 2007, select su range de salarios (digamos la columna B ), click Data en la cinta de opciones y select Data Validation . A partir de ahí, ingrese la siguiente fórmula:

 =B:B<1000000 

Esto arrojará un error cada vez que ingrese un valor que haga el total de la columna> 1000000. También puede personalizar el error si es necesario:

enter image description here

Así es como lo hace para una sola celda, este código debe estar en la página vba para esa hoja específica, no en un module. Estoy seguro de que puedes adaptarlo para trabajar en tu range.

 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("A1"), Target) Is Nothing Then If Range("A1").Value > 1000000 MsgBox "A1 is greater than 1000000, ALERT! ALERT! ALERT!" End If End If End Sub 

Pero las soluciones que no son de VBA como el formatting condicional o la validation de datos como @RocketDonkey han sugerido que son una mejor idea.