Curso Macros en Excel – Cap. 79 – Agenda telefónica desde cero PARTE 2

<<CURSO COMPLETO EN YOUTUBE>>

En este capítulo daremos seguimiento a nuestro Proyecto de Agenda telefónica desde cero usando macros y VBA en Excel. La primera parte fue bien recibida, por lo que espero que siga teniendo la misma aceptación. En esta segunda parte retomamos el Formulario de Alta que ya diseñamos, pero ahora le daremos algo de interactividad, al poder validar el correo electrónico, poder elegir una imagen para el contacto, entre otras cosas más.

Ver video Capítulo 79 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Avance del Proyecto

Como lo has notado, este es el segundo video del Proyecto de nuestra agenda telefónica, pero el número 79 de nuestro curso de macros. A continuación enlisto lo que ya hemos hecho y lo que haremos en este capítulo.

  • Validar el email del contacto. PARTE 2
  • Elegir una imagen para el contacto. PARTE 2
  • Llenar lista para elegir el género del contacto. PARTE 2
  • Deshabilitar TextBox en caso de que el contacto no desee proporcionar datos. PARTE 2

Validar el email

Para lograr que podamos validar el email del contacto, nos basaremos en el post Validar email en Excel con macros vba, donde aprendimos a lograrlo mediante una función que usa una expresión regular para saber si el correo tiene la estructura correcta. Voy a resumir los pasos para validar el email:

  • Activamos la Referencia Microsoft VBScript Regular Expresions 1.0 en el IDE de VBA entrando a Herramientas > Referencias.
  • Copiamos la función valida_email_fx y la pegamos en un Módulo.

Activar Referencia Microsoft VBScript Regular Expresions 1.0 para validar email

Figura 1. Activar Referencia Microsoft VBScript Regular Expresions 1.0 para validar email.

Una vez que peguemos la función usaremos el evento Exit del TextBox4, el cual detectará la salida del control y mandará llamar la siguiente macro para indicar si el correo es válido o no.

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If valida_email_fx(Me.TextBox4.Value) = False Then
    MsgBox "Se recomienda que valides el email", vbExclamation
    Cancel = True
Else
'
End If

End Sub

Validación de correo usando expresiones regulares en Excel

Figura 2. Validación de correo usando expresiones regulares en Excel.

Fuente: Validar email en Excel con macros vba.

Llenar lista de géneros

En la campo sexo tenemos un Cuadro combinado (ComboBox) el cual deseamos que se llene con los valores: M, F y No especifica. Para esto tendremos que usar el evento Initialize del Formulario para rellenar el Combo, además de usar el evento Change del mismo control, para asignarle un valor a la etiqueta Label7 con la descripción del género.

Private Sub UserForm_Initialize()
Me.ComboBox1.MatchEntry = fmMatchEntryFirstLetter
Me.ComboBox1.MatchRequired = True

Me.ComboBox1.AddItem "Elige"
Me.ComboBox1.AddItem "M"
Me.ComboBox1.AddItem "F"
Me.ComboBox1.AddItem "No especifica"

Me.ComboBox1.Value = "Elige"

End Sub

Private Sub ComboBox1_Change()
Select Case Me.ComboBox1.Value
    Case Is = "M"
        Me.Label7.Caption = "Masculino"
    Case Is = "F"
        Me.Label7.Caption = "Femenino"
    Case Is = "No especifica"
        Me.Label7.Caption = Me.ComboBox1.Value
End Select

End Sub

Rellenar ComboBox y usar el evento Change para detectar cuando se eligen los elementos

Figura 3. Rellenar ComboBox y usar el evento Change para detectar cuando se eligen los elementos.

Fuente 1: Curso Excel VBA y Macros – Cap. 53 y 54 – Formularios – Control ComboBox ó Cuadro combinado.

Fuente 2: Curso Excel VBA y Macros – Cap. 22 – Instrucción Select…Case para múltiples condiciones.

Seleccionar imagen

En el UserForm1 insertamos un Control de imagen (Image1), el cual mostrará la imagen que deseemos asignar a un contacto. También tenemos un Botón (CommandButton2) que tiene la etiqueta Examinar. Éste botón nos mostrará un Cuadro de diálogo para elegir una imagen, la cual se mostrará en el control Image1.

Es importante aclarar que solo será posible trabajar con los siguientes tipos de imagen.

  • Mapa de bits. *.BMP.
  • Imágenes *.GIF.
  • Imágenes JPEG. *.JPG.
  • Metarchivos. *.WMF, *.EMF.
  • Íconos. *.ICO, *.CUR.

Insertar imágenes usando Formulario en Excel y Control Image.

Figura 4. Insertar imágenes usando Formulario en Excel y Control Image.

Para lograr insertar la imagen en el Control, usamos la siguiente macro.

Private Sub CommandButton2_Click()
Dim Dialogo As FileDialog
Dim ArchivoSeleccionado As Variant

Set Dialogo = Application.FileDialog(msoFileDialogFilePicker)

Dialogo.Title = "Elegir archivo"
Dialogo.Filters.Add "Imágenes", "*.bmp, *.gif, *.jpg, *.ico"

If Dialogo.Show = -1 Then
    For Each ArchivoSeleccionado In Dialogo.SelectedItems
        MsgBox ArchivoSeleccionado
    ''''''''''''''''''
    With Me.Image1
        .BorderStyle = fmBorderStyleNone
        .PictureSizeMode = fmPictureSizeModeStretch
        .Picture = LoadPicture(ArchivoSeleccionado)
    End With
    ''''''''''''''''''
    Next ArchivoSeleccionado
Else
    MsgBox "Nada"
End If

Set Dialogo = Nothing

End Sub

Fuente 1: Curso Excel VBA y Macros – Cap. 46 – FileDialog para Abrir, Guardar como, Elegir Archivo y Carpeta.

Fuente 2: Curso Excel VBA y Macros – Cap. 60 – Formularios – 3 maneras de mostrar imágenes.

Activar o desactivar Controles.

Tenemos una Casilla de verificación (CheckBox1) la cual nos ayudará a habilitar o deshabilitar dos Cuadros de texto. Si el contacto no quiere proporcionar datos de Página Web o su identidad en redes sociales, entonces se marca el CheckBox y los TextBoxes se inhabilitan.

Proporcionar o no la información de redes sociales.

Figura 5. Proporcionar o no la información de redes sociales.

Usaremos la siguiente macro VBA para lograr lo anterior.

Private Sub CheckBox1_Click()
If Me.CheckBox1.Value = True Then
    Me.TextBox8.Enabled = False
    Me.TextBox8.Value = 0
    Me.TextBox9.Enabled = False
    Me.TextBox9.Value = 0
Else
    Me.TextBox8.Enabled = True
    Me.TextBox9.Enabled = True
End If
End Sub

Fuente: Curso Excel VBA y Macros – Cap. 61 – Formularios – CheckBox – 5 trucos que tal vez no conocías.

Descargar el archivo de ejemplo

079 – Proyecto Agenda 02 -Validar email, insertar imágenes, Listas – EXCELeINFO.zip

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: