Excel y VBA como entrenador deportivo

Última actualización el 22/05/2024
Tiempo de lectura: 4 minutos

Excel puede ser tu nuevo entrenador deportivo utilizando una funcionalidad muy específica de VBA.

Vídeo de presentación del ejercicio.

Vamos a recrear un ejercicio muy común en el tenis o ping-pong; ir a tocar gafas dispuestas en un cuadrado

¿Cómo transformar Excel en un coach con VBA?

Es Excel el que nos dirá el número del vaso a tocar 😉

Crearemos un programa VBA que pronunciará aleatoriamente un número del 1 al 4 con un retraso de un segundo entre cada número.

Diseño de programa

El programa se basa en sólo 4 aspectos.

  • Crea un número aleatorio entre 1 y 4
  • Convierte este número en una cadena
  • Pídele a Excel que pronuncie esta palabra
  • Repetir la secuencia un número definido de veces.

Manejar un número aleatorio

Crear un número aleatorio es bastante sencillo de hacer.

  • La instrucción Rnd (aleatorio en inglés) creará un número aleatorio entre 0 y 1 (1 excluido).
  • Ahora, multiplicando esta función Rnd por 4, tendremos un número en 0 y 3,99999.
  • Luego, gracias a la función Int. (Entero o Entero), solo mantendremos la parte entera del número aleatorio, ya sea 0, 1, 2 o 3.
  • Todo lo que queda es suma el valor 1 al resultado obtenido tener un número aleatorio entre 1 y 4.

NúmeroAlea = Int(Rnd() * 4) + 1

Especificidad de VBA para números aleatorios

Sin embargo, esta instrucción no es suficiente. De hecho, en VBA, debes "forzar" el recálculo aleatorio con la instrucción Randomize.

Sin esta instrucción, existe el riesgo de que se repita la secuencia aleatoria.

Convertir números en cadenas

Ahora es importante convertir el número encontrado en una cadena. En efecto, el comando que permite hablar a Excel debe tener como parámetro una cadena de caracteres (Cordón en inglés) y no un número.

Para ello usaremos la función ELEGIR en Excel pero desde VBA. Para hacer esto, debe usar la instrucción Application.WorksheetFunction.Choose.

Luego, deberás escribir los parámetros exactamente de la misma forma que con la función ELEGIR. Cualquiera

Application.WorksheetFunction.Choose(NbreAlea, "uno", "dos", "tres", "cuatro")

Hacer que Excel hable

Para pedirle a Excel que pronuncie una oración, simplemente pase la oración como parámetro del método Aplicación.Voz.Hablar

Aplicación.Voz.Hablar Número de texto

Integrar un temporizador

Todo es casi perfecto. Solo necesitamos integrar un retraso de un segundo para darnos tiempo de alcanzar el vaso 😉 Aquí integraremos una pausa de un segundo después de cada palabra hablada con la instrucción.

Aplicación.Espere (Ahora + TimeValue("00:00:01"))

Repetir la secuencia varias veces.

Una vez construida esta secuencia, simplemente inserte estas instrucciones en un bucle Para...Siguiente para repetir estas instrucciones tantas veces como quieras

El programa completo

¿Cómo integrar el código?

Para que este código funcione, debes copiarlo en el editor visual basic.

  1. Abrir un nuevo libro de Excel
  2. Abra el editor visual basic con el Atajo de teclado Alt + F11
  3. Añadir un nuevo módulo
Insertar un módulo VBA
  1. Pega el código en el módulo.
Copiar código en un módulo
  1. Cerrar VBA

Iniciar macro

  1. Desde Excel, presione las teclas Alt + F8
  2. Presione el botón realizar
Lanzar el programa de entrenador deportivo

Cómo depurar un programa VBA

Si tiene dificultades para encontrar el origen de sus errores en VBA, esta guía le explicará cómo utilizar el depurador.

Nunca dos veces el mismo numero

Una variación interesante del código es nunca repetir el mismo número dos veces seguidas. Para ello deberás añadir una prueba sencilla al generar el número aleatorio para comprobar que el número anterior no es igual al nuevo.

Dejar un comentario

Su dirección de correo electrónico no será publicada. Los campos necesarios están marcados con *

Este sitio usa Akismet para reducir los no deseados. Obtenga más información sobre cómo se procesan sus datos de comentarios.

Jugador Más Valioso de Microsoft 2024

Boletín informativo

1 vez al mes:
Consejos y cuestionarios

    No te enviaremos spam. Puedes darte de baja en cualquier momento.

    Excel y VBA como entrenador deportivo

    Tiempo de leer: 4 minutos
    Última actualización el 22/05/2024

    Excel puede ser tu nuevo entrenador deportivo utilizando una funcionalidad muy específica de VBA.

    Vídeo de presentación del ejercicio.

    Vamos a recrear un ejercicio muy común en el tenis o ping-pong; ir a tocar gafas dispuestas en un cuadrado

    ¿Cómo transformar Excel en un coach con VBA?

    Es Excel el que nos dirá el número del vaso a tocar 😉

    Crearemos un programa VBA que pronunciará aleatoriamente un número del 1 al 4 con un retraso de un segundo entre cada número.

    Diseño de programa

    El programa se basa en sólo 4 aspectos.

    • Crea un número aleatorio entre 1 y 4
    • Convierte este número en una cadena
    • Pídele a Excel que pronuncie esta palabra
    • Repetir la secuencia un número definido de veces.

    Manejar un número aleatorio

    Crear un número aleatorio es bastante sencillo de hacer.

    • La instrucción Rnd (aleatorio en inglés) creará un número aleatorio entre 0 y 1 (1 excluido).
    • Ahora, multiplicando esta función Rnd por 4, tendremos un número en 0 y 3,99999.
    • Luego, gracias a la función Int. (Entero o Entero), solo mantendremos la parte entera del número aleatorio, ya sea 0, 1, 2 o 3.
    • Todo lo que queda es suma el valor 1 al resultado obtenido tener un número aleatorio entre 1 y 4.

    NúmeroAlea = Int(Rnd() * 4) + 1

    Especificidad de VBA para números aleatorios

    Sin embargo, esta instrucción no es suficiente. De hecho, en VBA, debes "forzar" el recálculo aleatorio con la instrucción Randomize.

    Sin esta instrucción, existe el riesgo de que se repita la secuencia aleatoria.

    Convertir números en cadenas

    Ahora es importante convertir el número encontrado en una cadena. En efecto, el comando que permite hablar a Excel debe tener como parámetro una cadena de caracteres (Cordón en inglés) y no un número.

    Para ello usaremos la función ELEGIR en Excel pero desde VBA. Para hacer esto, debe usar la instrucción Application.WorksheetFunction.Choose.

    Luego, deberás escribir los parámetros exactamente de la misma forma que con la función ELEGIR. Cualquiera

    Application.WorksheetFunction.Choose(NbreAlea, "uno", "dos", "tres", "cuatro")

    Hacer que Excel hable

    Para pedirle a Excel que pronuncie una oración, simplemente pase la oración como parámetro del método Aplicación.Voz.Hablar

    Aplicación.Voz.Hablar Número de texto

    Integrar un temporizador

    Todo es casi perfecto. Solo necesitamos integrar un retraso de un segundo para darnos tiempo de alcanzar el vaso 😉 Aquí integraremos una pausa de un segundo después de cada palabra hablada con la instrucción.

    Aplicación.Espere (Ahora + TimeValue("00:00:01"))

    Repetir la secuencia varias veces.

    Una vez construida esta secuencia, simplemente inserte estas instrucciones en un bucle Para...Siguiente para repetir estas instrucciones tantas veces como quieras

    El programa completo

    ¿Cómo integrar el código?

    Para que este código funcione, debes copiarlo en el editor visual basic.

    1. Abrir un nuevo libro de Excel
    2. Abra el editor visual basic con el Atajo de teclado Alt + F11
    3. Añadir un nuevo módulo
    Insertar un módulo VBA
    1. Pega el código en el módulo.
    Copiar código en un módulo
    1. Cerrar VBA

    Iniciar macro

    1. Desde Excel, presione las teclas Alt + F8
    2. Presione el botón realizar
    Lanzar el programa de entrenador deportivo

    Cómo depurar un programa VBA

    Si tiene dificultades para encontrar el origen de sus errores en VBA, esta guía le explicará cómo utilizar el depurador.

    Nunca dos veces el mismo numero

    Una variación interesante del código es nunca repetir el mismo número dos veces seguidas. Para ello deberás añadir una prueba sencilla al generar el número aleatorio para comprobar que el número anterior no es igual al nuevo.

    Boletín informativo

    1 vez al mes:
    Consejos y cuestionarios

      No te enviaremos spam. Puedes darte de baja en cualquier momento.

      Dejar un comentario

      Su dirección de correo electrónico no será publicada. Los campos necesarios están marcados con *

      Este sitio usa Akismet para reducir los no deseados. Obtenga más información sobre cómo se procesan sus datos de comentarios.