A continuación veremos un programa en Excel VBA que crea una tabla de promedio móvil . Coloca un botón de comando en tu hoja de trabajo y añade la siguiente línea de código:
Rango("B3").Valor = Función de la hoja de trabajo.RandBetween(0, 100)
Esta línea de código introduce un número aleatorio entre 0 y 100 en la celda B3. Queremos que Excel VBA tome el nuevo valor de stock y lo coloque en la primera posición de la tabla de promedios móviles. Todos los demás valores deben moverse hacia abajo un lugar y el último valor debe ser eliminado.
Crear un evento de cambio de hoja de cálculo. El código agregado al Evento de Cambio de Hoja de Trabajo será ejecutado por Excel VBA cuando cambie una celda en una hoja de trabajo.
1. Abra el Editor de Visual Basic.
2. Haga doble clic en la Hoja 1 (Sheet1) en el Explorador del Proyecto.
3. Elija Hoja de cálculo de la lista desplegable de la izquierda. 4. Selecciona Cambiar en la lista desplegable de la derecha.
Añade las siguientes líneas de código al Evento de Cambio de la Hoja de Trabajo:
4. Declarar una variable llamada nuevo valor de tipo Entero y dos rangos (valores de primero y último).
Dim newvalue As Integer, firstfourvalues As Range, lastfourvalues As Range
5. El Evento de Cambio de la Hoja de Trabajo escucha todos los cambios en la Hoja1. Sólo queremos que Excel VBA haga algo si algo cambia en la celda B3. Para lograrlo, agregue la siguiente línea de código:
Si la dirección del objetivo = "$B$3" entonces
6. Inicializamos el nuevo valor con el valor de la celda B3, los cuatro primeros valores con Range("D3:D6") y los cuatro últimos valores con Range("D4:D7").
nuevo valor = Rango("B3").Valor Establecer los primeros cuatro valores = Rango("D3:D6") Establecer los cuatro últimos valores = Rango("D4:D7")
7. Ahora viene el simple truco. Queremos actualizar la tabla de medias móviles. Puede lograrlo reemplazando los últimos cuatro valores por los primeros cuatro valores de la tabla y colocando el nuevo valor de las acciones en la primera posición.
Valor = Valor de los cuatro últimos. Valor = Valor de los cuatro primeros. Rango("D3").Valor = nuevo valor
8. No olvides cerrar la declaración de «si».
Termina si
9. Finalmente, introduce la fórmula =POMEDIO(D3:D7) en la celda D8.
10. Pruebe el programa haciendo clic en el botón de comando.