¿Quiero qué salga un Msgbox cuando los datos de una celda sea menor a cero? Validación de Datos.-

Tengo un rango de 5 celdas que contienen diferentes cantidades, con un total que sumariza las 5 celdas.- Estas 5 celdas, representan las cantidades de ventas de 5 productos diferentes, y el total debajo, representa el total de unidades vendidas.-

En otra hoja tengo la evolución de stocks linkeada a la celda total de unidades vendidas.-

Quiero que cuando al cambiar cualquiera de las 5 celdas y la celda "Total de unidades vendidas" tome un valor que lleve el stock (en la otra hoja ) a un valor negativo, salga un Msgbox advirtiendo.-

Tengo Excel 2010.-

2 respuestas

Respuesta
1

Después de mucho buscar he podido lograr una solución, paso a explicarme:

Supongamos que las celdas A1:A3 de la Hoja1 tienen los valores que vas a cambiar (en tu caso las ventas), y la suma de estos datos se encuentra en la celda A4 de la Hoja1; el valor máximo que puede tomar esta suma se encuentra en la celda A1 de la Hoja2 (valor que en tu caso es el stock). Para impedir que se ingresen valores que produzcan sumas superiores al stock, debes usar la herramienta VALIDACIÓN DE DATOS (la encuentras en la ficha DATOS, grupo HERRAMIENTAS DE DATOS) y configurarla de este modo:

1. En la pestaña CONFIGURACIÓN en el cuadro PERMITIR escoge PERSONALIZADA y en el cuadro FÓRMULA introduce esta expresión

=$A$4<=Hoja2!$A$1

En la pestaña MENSAJE DE ERROR, puedes configurar el texto que se muestra cuando se ingresen valores no válidos

Seria cuestión de que lo modifiques para que encaje en tu caso y hagas las pruebas correspondientes, yo lo he probado y funciona (También uso Excel 2010).

Respuesta
1

Se puede ejecutar una rutina cada vez que se realizan cambios 'manuales' en las celdas de los datos, no la de resultado.

Si te sirve la tenés que colocar en el Editor, en el objeto HOJA donde se ingresan los datos.

Esto es un ejemplo, tendrás que ajustar tus referencias.

Private Sub Worksheet_Change(ByVal Target As Range)
'se controla el rango A2:A6
If Intersect(Target, Range("A2:A6")) Is Nothing Then Exit Sub
'si algo cambió en el rango de datos, evalúo el resultado que lo tengo en A8
If Range("A8") < 5 Then
MsgBox "Atención que estás llegando al mínimo"
End If
End Sub

Sdos. Si esto resolvió tu inquietud no olvides finalizar la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas