Mostrar y vocalizar actividades pendientes en Excel @EXCELeINFO

En un artículo anterior vimos una macro para que al abrir un archivo de Excel nos muestre un mensaje donde nos enliste el nombre de las personas que cumplen años el día actual, es decir, el día en que se abre el archivo.

Siguiendo la misma temática, he desarrollado otro ejemplo más robusto en que utilizamos una característica interesante de Windows que es vocalizar un texto usando macros, las cuales no ayudarán a que se nos muestre un mensaje con las actividades que tenemos vigentes, además de que vocalizarán dichas actividades. La característica es Texto a voz o TTS, que por su siglas en ingles es Text to speech.

Activar Texto a voz (TTS) en Windows

En el Panel de control o Configuraciones de Windows 10 entramos a la ruta Reconocimiento de voz > Texto a voz y validamos que estén configuradas las opciones de voz.

Elegir el idioma de vocalización de Texto a voz.

Figura 1. Elegir el idioma de vocalización de Texto a voz.

Ver video Mostrar y vocalizar actividades pendientes en Excel

Suscríbete para aprender más de Excel.

Tabla de actividades pendientes

Tenemos una Tabla de Excel la cual contendrá una lista de actividades donde incluyamos el NOMBRE de la actividad, la FECHA y el STATUS de las mismas.

Nos interesa se informados de las actividades vigentes.

Figura 2. Nos interesa se informados de las actividades vigentes.

A considerar antes de ejecutar la macro

La tabla a usar tiene el nombre tblActividades debemos asegurarnos que la columna con las fechas se llame F_EJECUCIÓN. Lo anterior para que la macro funcione, después de hacerla funcionar puedes cambiar los nombres a conveniencia.

Nos aseguramos de tener bien definido el nombre de la tabla y la columna de fechas.

Figura 3. Nos aseguramos de tener bien definido el nombre de la tabla y la columna de fechas.

También es importante validar qué Nombre de usuario tienes configurado en Excel y si es necesario cámbialo. Te dirige a Opciones > General > Nombre de usuario. Lo anterior, ya que la macro también mostrará y vocalizará tu nombre.

Cómo funciona

Ya tenemos nuestra tabla con las actividades por FECHA y por STATUS. Cada vez que el archivo se abra, la macro recorrerá la columna F_EJECUCIÓN y hará la siguiente validación:

“Si la fecha de ejecución es igual a la fecha de hoy y además la actividad está en status de VIGENTE, se tomará como actividades pendientes de cerrar.”

Las actividades que cumplan con el anterior criterio se mostraran todas en un mensaje, además de que se vocalizarán dichas actividades. Podemos abrir el archivo y sólo enfocarnos en lo que escuchamos, para así poder desviar nuestra mirada a otra parte.

Se muestran y se vocalizan las actividades pendientes del día.

Figura 4. Se muestran y se vocalizan las actividades pendientes del día.

Código vba de la macro

El punto importante a considerar es la macro es un nuevo procedimiento que nunca habíamos usado en este Blog. Es el método Speech.Speak que nos permite vocalizar valores escritor a voz.

Es importante mencionar que el método Speech.Speak tiene como segundo parámetro SpeakAsync, si lo ponemos en False se detendrá la vocalización a ejecutar otra línea de código, en cambio, si lo ponemos en True se seguirá vocalizando el texto aunque se ejecute otra macro.

Usamos la macro Auto_Open dentro de un módulo normal para que se ejecute al momento de abrir el archivo.

'---------------------------------------------------------------------------------------
' Macro     : Mostrar y vocalizar actividades pendientes.
' Author    : MVP, Sergio Alejandro Campos
' Date      : 03-nov-2016
' Blog      : exceleinfo.com
' Youtube   : youtube.com/user/sergioacamposh
'---------------------------------------------------------------------------------------
'
Option Explicit
'
Sub Auto_Open()
'
'Declaración de variables
'
Dim MiRango As Range
Dim Celda As Range
Dim Nombre, Nombre2, Mensaje, Usuario, Titulo
'
'Asignamos valores a las variables
Set MiRango = Range("tblActividades[F_EJECUCIÓN]")
Usuario = Application.UserName
Titulo = "EXCELeINFO"
'
'Recorremos cada celda y validamos VS la fecha actual
'
For Each Celda In MiRango
    If Celda.Value = Date And Celda.Offset(0, 2).Value = "VIGENTE" Then
        Mensaje = Usuario & ", tienes estos pendientes para el día de hoy: " & Date
        '
        Nombre = Chr(149) & Celda.Offset(0, -1).Value
        Nombre2 = Nombre2 & vbNewLine & Nombre
    End If
Next Celda
'
If IsEmpty(Nombre2) Then
    'En caso no haber pendientes...
    '
    Application.Speech.Speak "No tienes pendientes para hoy.", True
    MsgBox "No tienes pendientes para hoy.", vbInformation, Titulo
    '
Else
    'Se vocalizan y muestran los pendientes.
    '
    Application.Speech.Speak Mensaje & Nombre2, True
    MsgBox Mensaje & vbNewLine & Nombre2, vbInformation, Titulo
    '
End If
'
End Sub

Descarga el archivo de ejemplo

Descargar el ejemplo Mostrar y vocalizar actividades que tengo pendientes.rar

You may also like...

  • Cristian Gerardo Günther

    Consulta. Tengo una planilla con 3 botones, que tiene el siguiente texto, objetivo 1, objetivo 2 y objetivo 3. Lo que realizará cada botón es ocultar o mostrar la hoja1 que se llama objetivo 1, hoja2 que se llama objetivo 2 u hoja3 que es objetivo 3, según corresponda (ese código ya lo tengo). Lo que quiero optimizar es, en vez de tener 3 macros (como tengo ahora), quiero una sola, donde tome el texto del botón como parámetro para mostrar u ocultar la hoja que tiene el mismo nombre que el botón presionado.

RECIBE CONTENIDO EXCLUSIVO

Tips, trucos, videos para convertirte en un EXPERTO EN EXCEL y llegar al éxito. Suscríbete y recibe el mejor contenido en tu correo.