Fomulario Wizard en Excel vba con Multipage

En esta ocasión muestro un ejemplo de cómo realizar un formulario Wizard con el objetivo de simular una encuesta.

Para el ejemplo se pudierdon haber utilizado formularios para cada pregunta, pero es mucho más funcional hacerlo con objetos Multipage, y sólo añadirles las instrucciones a los botones para desplazarnos entre las pestañas del objeto.

Cómo funciona ?

Tenemos un Form el cual contiene un Multipage que éste a su vez tiene 6 pestañas. También contiene 4 CommandbButtons que cumplen la función de desplazarse entre las pestañas:

  • Cerrar: cierra el formulario.
  • Anterior: se desplaza a la pestaña anterior.
  • Siguiente: se desplaza a la pestaña siguiente.
  • Mostrar resultado: se desplaza a la última pestaña con el resultado.

Imágenes del formulario

image image 

image image 

image image

Código del formulario

El código se encuentra en el módulo del formulario.

'---------------------------------------------------------------------------------------
' Module    : UserForm1
' Author    : Sergio A Campos H
' Date      : 27/08/2011
' Purpose   : Ejemplo de formulario (Wizard)
'---------------------------------------------------------------------------------------
'
Private Sub CommandButton1_Click()
'Botón << anterior
Me.MultiPage1.Value = Me.MultiPage1.Value - 1
End Sub
'
Private Sub CommandButton2_Click()
'Botón siguiente >>
Me.MultiPage1.Value = Me.MultiPage1.Value + 1
End Sub
'
Private Sub CommandButton3_Click()
'Llenamos etiquetas con resultados
Me.MultiPage1.Value = 5
Me.Label13.Caption = Me.txtNombre.Value
Me.Label17.Caption = Me.ComboBox1.Value
Me.Label16.Caption = Me.ComboBox2.Value
Me.Label15.Caption = Me.ComboBox3.Value
Me.Label14.Caption = Me.ComboBox4.Value
End Sub
'
Private Sub CommandButton4_Click()
'Salir
Unload Me
End Sub
'
Private Sub MultiPage1_Change()
'Evento para el cambio de páginas
Call MostrarCaption
Call Botones
End Sub
'
Sub MostrarCaption()
'Se asigna el título al formulario
Cuenta1 = Me.MultiPage1.Value + 1
Titulo = "EXCELeINFO - Cuestionario - Paso " & Cuenta1 & " de " _
    & Me.MultiPage1.Pages.Count
Me.Caption = Titulo
End Sub
'
Private Sub UserForm_Initialize()
'Llenamos Combos, título y botones
With Me
    .MultiPage1.Value = 0
    .MultiPage1.Style = fmTabStyleNone
    .ComboBox1.RowSource = "lstOpciones"
    .ComboBox2.RowSource = "lstOpciones"
    .ComboBox3.RowSource = "lstOpciones"
    .ComboBox4.RowSource = "lstSiNo"
End With
Call MostrarCaption
Call Botones
End Sub
'
Sub Botones()
'Habilitar / deshabilitar botones
Cuenta = Me.MultiPage1.Pages.Count - 1
If Me.MultiPage1.Value = 0 Then
    CommandButton1.Enabled = False
    CommandButton2.Enabled = True
    CommandButton3.Enabled = False
ElseIf Me.MultiPage1.Value = Cuenta - 1 Then
    CommandButton2.Enabled = False
    CommandButton1.Enabled = True
    CommandButton3.Enabled = True
ElseIf Me.MultiPage1.Value = 5 Then
    CommandButton2.Enabled = False
    CommandButton1.Enabled = False
    CommandButton3.Enabled = False
Else
    CommandButton2.Enabled = True
    CommandButton1.Enabled = True
End If
End Sub

:: Descargar ejemplo EXCELeINFO – Cuestionario Wizard

You may also like...