30 Macros útiles y sencillas: Mensaje saludo personalizado parte 2 usuario y país

Vamos a personalizar ahora un poco más nuestros libros de trabajo con la combinación de un código que nos permite identificar el usuario del usuario para ajustar el idioma del saludo al usuario. Supongamos un escenario donde trabajemos para una empresa multinacional con sedes en USA, Colombia, Chile y Perú; sería apropiado que si el archivo lo abre una persona en USA el mensaje de saludo que hace el archivo sea en Ingles y si se abre en los demás países, el mensaje sea en español.

Lo primero que vamos a hacer es ingresar al Editor de Visual Basic y para ello desde la primera hoja utilizaremos la combinación de teclas Alt + F11:

Nos ubicamos en la ventana del Explorador de Proyectos que tenemos en el panel izquierdo de la ventana del Editor de Visual Basic y damos doble clic sobre el Objeto ThisWorkbook

Private Sub Workbook_Open()

On Error Resume Next

Usuario = Environ("USERNAME")

Hora = (Now - Int(Now)) * 24

Idioma = Application.International(xlCountryCode)

 

If Idioma = 1 Then

Select Case Hora

Case 6 To 12

MsgBox "Good Morning " & Usuario

Case 12 To 18

MsgBox "Good Afternoon " & Usuario

Case Else

MsgBox "Good Evening " & Usuario

End Select

Else

Select Case Hora

Case 6 To 12

MsgBox "Buenos Dias " & Usuario

Case 12 To 18

MsgBox "Buenas Tardes " & Usuario

Case Else

MsgBox "Buenas Noches " & Usuario

End Select

End If

 

End Sub

La primea línea marca el principio de la macro y se interpreta como macro que se ejecutará al momento de abrirse el libro de trabajo.

La segunda línea On Error Resume Next, es el código con el cual se hace el manejo de los errores que se puedan presentar en la ejecución de la macro para que en caso de que se presente un error, la macro no se detenga abruptamente si no que se detenga su ejecución sin afectar la operación del libro de trabajo.

En la tercera línea estamos haciendo uso de una variable llamada “Usuario” en la cual estamos almacenando el nombre del Usuario del computador donde se está abriendo el archivo; esto lo logramos con el uso de la propiedad Environ, la cual nos permite obtener varias características del computador donde se esté trabajando y para obtener el nombre de usuario se usa colocando entre paréntesis y comillas el código “USERNAME”

La cuarta línea corresponde a una conversión que se hace de la hora en la que se abre el archivo para almacenarla en una variable que llamamos “Hora”; la conversión se trata de dejar la hora en formato de 24 horas en número (incluido decimales) para poder aplicar el resto de la macro.

La quinta es la línea de código nueva donde estamos almacenando en la variable “Idioma”, el código con el que se asocia la marcación telefónica de cada país donde, USA es 1; por tanto en caso de que el resultado que se almacene en esta variable (que lo obtenemos con la propiedad International(xlCountryCode)), sea 1, el saludo debe ser en idioma inglés.

Las demás líneas que siguen, se usan para hacer una clasificación del valor que tenga la variable “Hora” donde, según ésta, se dará un mensaje (MsgBox) de saludo en inglés o en español según el valor de la variable Idioma

Al final del mensaje siempre se concatena con la información que hay en la variable Usuario

La última línea marca el final de la macro con la instrucción End Sub

Probemos abriendo el archivo en un computador con idioma español:

Y con un equipo con idioma Ingles:

Descargar archivo de trabajo.

MÁS SOBRE

Gerencie.com en su correo.

Suscríbase y nosotros colocaremos en su bandeja de entrada la mejor información que generamos diariamente.

Siéntase libre de opinar

En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc. Lo que no está permitido es insultar o escribir palabras ofensivas o soeces. Si lo hace, su comentario será rechazado por el sistema o será eliminado por el administrador. Por último, trate de no escribir en mayúscula sostenida, resulta muy difícil leerle.