Establecer una variable con un formulario en Visual Basic es algo más sencillo de lo que su propio nombre indica. La idea es que cuando se inicie la macro aparezca un formulario con opciones, y dependiendo de la selección, continúe de una forma u otra. Siguiendo los siguientes 4 pasos, verás como es más sencillo de lo que aparenta.
Creación del Formulario
El primer paso es crear el formulario que el usuario que ejecute la macro va a seleccionar de entre las opciones que le demos. En este ejemplo he creado un formulario con opciones excluyentes.
Insertar formulario
En la parte superior izquierda del editor de visual basic, con el botón derecho nos dará la opción de insertar un formulario, en Excel llamado UserForm.
Diseñar el formulario
Como avanzaba anteriormente, en este caso he creado un ejemplo para opciones excluyentes pero este punto es totalmente adaptable a las necesidades que se encuentren.
Con el cuadro de herramientas, que se habilita desde el menú Ver, se puede diseñar el formulario con muchas opciones diferentes.
En este caso, he renombrado mi formulario con el nombre Destino. Esto y más es configurable en la ventana de propiedades de más abajo.
Cada comando que se añade al formulario, tiene una ventana de propiedades que aparece abajo a la izquierda. En este caso, he modificado el campo Caption (España - Península), que es lo visible en el formulario, y debo conocer el nombre de este, OptionButton 1 para futuros pasos.
Crear macro dentro del formulario
Pinchando sobre el botón Continuar de mi formulario, se abrirá un editor de visual basic, en el que deberemos indicar el código a seguir, una vez el usuario pinche en este botón.
El código nos indica que dependiendo de la opción que el usuario señale, la variable país tomará un valor u otro.
Public Sub CommandButton1_Click()
Dim pais As String
'peninsula
If OptionButton1.value = True Then
pais = OptionButton1.Caption
End If
'baleares
If OptionButton3.value = True Then
pais = OptionButton3.Caption
End If
'canarias
If OptionButton4.value = True Then
pais = OptionButton4.Caption
End If
'portugal
If OptionButton5.value = True Then
pais = OptionButton5.Caption
End If
Destino.Hide
End Sub
Crear macro principal
En este ejemplo, lo que queremos es obtener un email dependiendo del destino que el usuario señale en el formulario, nos diga el correo electrónico para este destino.Lo que hace el código nada más empezar es abrir el formulario previamente creado para que el usuario haga la selección.
Una vez acaba la macro del formulario, vuelve con la respuesta y continúa la macro principal.
Sub Seleccion_Email()
Dim para As String
Destino.Show
'Peninsula
If Destino.OptionButton1.value = "Verdadero" Then
para = "peninsula@email.com"
'Baleares
ElseIf Destino.OptionButton3.value = "Verdadero" Then
para = "baleares@email.com"
'Canarias
ElseIf Destino.OptionButton4.value = "Verdadero" Then
para = "canarias@email.com"
'Portugal
ElseIf Destino.OptionButton5.value = "Verdadero" Then
para = "portugal@email.com"
End If
msgbox para
End sub
Dim para As String
Destino.Show
'Peninsula
If Destino.OptionButton1.value = "Verdadero" Then
para = "peninsula@email.com"
'Baleares
ElseIf Destino.OptionButton3.value = "Verdadero" Then
para = "baleares@email.com"
'Canarias
ElseIf Destino.OptionButton4.value = "Verdadero" Then
para = "canarias@email.com"
'Portugal
ElseIf Destino.OptionButton5.value = "Verdadero" Then
para = "portugal@email.com"
End If
msgbox para
End sub
No hay comentarios:
Publicar un comentario