Cómo establecer una variable con un formulario en visual basic


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.


Insertar_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.

Diseñar_UserForm





















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.





Formulario_visual_basic_OptionButtonPropiedades_Formulario_visual_basic_OptionButton


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


No hay comentarios:

Publicar un comentario

Otras entradas