Buenas, quisiera ver como incorporar una alerta sonora o ventana emergente de una hoja de excel.

Tengo creada una hoja con materiales y la cantidad que dispongo. Al lado, una función SI para que cuando la casilla de existencias este por debajo de una cantidad, me aparezca la palabra "pedir". Tengo intención de crear más hojas de ese estilo, por lo que querría ver como podría excel hacer sonar una alerta o una ventana emergente que me diga: "tienes que pedir" y ya ver que necesito. Es decir, que me avise solo excel sin tener que estar mirando continuamente si me aparece la palabra "pedir".

Tengo conocimientos básicos de excel, por lo que solo sé trabajar con funciones de macros o vba no tengo mucha idea y seguramente si alguien responde me dirá que hay que usar algo así, por eso pregunto para ver si alguien me podría ayudar.

1 Respuesta

Respuesta
1

Suponiendo que la cantidad esté en la celda C1 y la cantidad mínima fueran 100, sería algo así como...

Private Sub Worksheet_Calculate()
  If Range("C1") < 100 Then
    MsgBox "Hay que reponer stock ", vbInformation, "Atención"
  End If
End Sub

Para añadir una macro... Pulsa ALT + F11

En la ventana de macros, haz doble clic en el nombre de la pestaña donde está la celda de existencias (a la izquierda)..

Pega el código que te he puesto en la ventana que aparece..

Recuerda guardar el archivo de Excel con compatibilidad para macros (Guardar como... Excel habilitado para macros).

Ahora bien, ten en cuenta que cada vez que se recalcule la página, y la cantidad sea menor que 100 (o la que le pongas), te aparecerá la ventana de aviso. Yo lo que haría sería añadir una casilla de verificación para poder activar o desactivar la función.

Para ello, lo primero que tienes que hacer es activar la pestaña "Programador" en las opciones de Excel. Entonces, en la pestaña Programador, haces clic en el botón Insertar -> Control ActiveX - Casilla de verificación.

Haz clic sobre el sitio en la hoja de Excel donde quieras insertar el control. Luego hazle clic con el botón derecho sobrel, y clic en "Propiedades". Tienes que cambiar el nombre del control (AvisaStock) y lo que se lee en la etiqueta (eso tu verás):

Entonces el código de la macro anterior debería ser así:

Private Sub Worksheet_Calculate()
  If (Range("A1") < 100) And (AvisaStock.Value = True) Then
    MsgBox "Hay que reponer stock ", vbInformation, "Atención"
  End If
End Sub

De esta manera no avisará si la casilla de verificación no esta activada.

Salu2.

¡Gracias! Funciona perfecto. 

Pero si quiero que me avise de más referencias... ¿Tengo que hacer una macro así para cada una de las celdas?

En la misma macro puedes añadir todas las celdas que quieras, teniendo en cuenta que se abrirá una ventana de alerta tras otras cuando se produzca las coincidencias. Puedes tener la casilla de verificación para que avise de todos, o bien añadir una casilla de verificación para cada aviso, Así sería para utilizar la misma casilla para todos los avisos (suponiendo que llames a la casilla de verificación "Avisa"):

Private Sub Worksheet_Calculate()
  If (Avisa.Value = True) Then
    If (Range("A1") < 100) Then
      MsgBox "Hay que reponer stock", vbInformation, "Atención"
    end if
    If (Range("B5") < 50) Then
      MsgBox "La celda B5 es menor de 50", vbInformation, "Atención"
    End If
  End If
End Sub

Si tienes una casilla de verificación para activar o desactivar cada aviso (suponiendo que tuvieras otra casilla de verificación llamada "AvisaDeOtraCosa"):

Private Sub Worksheet_Calculate()
  If (Range("A1") < 100) And (AvisaStock.Value = True) Then
    MsgBox "Hay que reponer stock", vbInformation, "Atención"
  End If
  If (Range("B5") < 50) And (AvisaDeOtraCosa.Value = True) Then
    MsgBox "La celda B5 es menor a 50", vbInformation, "Atención"
  End If
End Sub

Salu2.

Añadir que existen diferentes operadores lógicos de comparación, no solo "menor que":

Igual a =
Mayor que >
Menor que <
Mayor o igual a >=
Menor o igual a <=
Diferente a <>

También existen los operadores lógicos, para utilizar varias condiciones

Que se cumplan todas las condiciones AND -> (Condicion 1) And (Condicion 2)
Que se cumpla alguna de las condiciones OR -> (Condicion 1) Or (Condicion 2)

Salu2.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas