Dan de Wauconda planteó la pregunta de Excel de esta semana.
Tengo una hoja de cálculo de Excel que calcula un valor. Si el valor de la celda es> 100, necesito que se reproduzca un archivo midi.

Este consejo hace uso de los controladores de eventos que se discutieron aquí el 23 de diciembre. Si no está familiarizado con los controladores de eventos, primero revise ese consejo.
El primer paso es pegar una copia del archivo MIDI en un lugar apartado de la hoja de trabajo.
- Abra el reproductor multimedia WIN95. Programas> Accesorios> Multimedia
- Abra el archivo midi elegido en el reproductor multimedia.
- En el reproductor multimedia, seleccione Editar y luego Copiar objeto.
- En Excel, busque una ubicación apartada. En este ejemplo, estoy seleccionando Sheet1 Cell Z99. Haga clic aquí y luego presione Editar> Pegar
- Mire el cuadro de nombre en Excel. En el cuadro de nombre, le dará un nombre al archivo midi. El mío se llama Objeto 1.
La macro de VBA para reproducir ese archivo midi es:
Sub Playit() ActiveSheet.Shapes("Object 1").Select Selection.Verb Verb:=xlPrimary End Sub
Dependiendo de si tiene Excel 97 o Excel 95 / 7.0, usaría el controlador de eventos apropiado para invocar el código anterior. Aquí hay un ejemplo para Excel 97. Suponga que si se ingresa un nuevo valor en la celda A1, desea verificar si la celda calculada en A2 es> 100. El controlador de eventos es el siguiente:
Abra el Editor de Visual Basic. En la ventana izquierda, haga clic derecho en Sheet1 y seleccione Ver código. En la parte superior del cuadro de diálogo Código Libro1 - Hoja1, hay dos menús desplegables. En el menú desplegable de la izquierda, seleccione Hoja de trabajo. En el menú desplegable de la derecha, seleccione Cambiar. Ingrese las siguientes líneas de código:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address = "$A$1" Then If Range("A2")> 100 Then ActiveSheet.Shapes("Object 1").Select Selection.Verb Verb:=xlPrimary End If End If End Sub