Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Formulario de Excel Avanzado Para boleta de entrada al cine

| Sin comentarios

Al momento de acercar a comprar una entrada para una película, uno debe tener dos parámetros inicialmente definidos unos es la la película que desea ver y el otro la hora a la que desea verla. Luego a uno se le pregunta la cantidad de personas que van a ingresar y si estas son adultos y/o niños. Por último uno es informado acerca del monto total del costo de las entradas y luego de realizar el pago, se le entrega su boleta.

Téngase una Data de película y horarios como se muestra en la siguiente tabla

data horarios 300x78 Formulario de Excel Avanzado Para boleta de entrada al cine

(Para mayor visualización de la imagen, hacer click en la misma)

El siguiente Formulario cuenta con las siguientes entradas así como se muestra en la imagen inferior

formulario 300x179 Formulario de Excel Avanzado Para boleta de entrada al cine

(Para mayor visualización de la imagen, hacer click en la misma)

Película

Horario

Cantidad de adultos y niños

Si el usuario posee alguna tarjeta de socio

Los Botones:

Calcular: Calcular el monto a pagar

Imprimir: Imprimir la boleta

Siguiente: Resetear el Formulario y Boleta

Cancelar: Abortar el Formulario

Además del botón "Generar Boleta" el cual está encarga de Iniciar la tarea

bot1 Formulario de Excel Avanzado Para boleta de entrada al cine

en vba:

Private Sub CommandButton1_Click()
UserForm1.Show
End Sub

Para definir los valores del espacio Película

De la hoja "Horarios" se toman todos los espacios que tengas información de una película

Private Sub UserForm_Activate()

Sheets("Horarios").Select

pdis = Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To pdis
ComboBox1.AddItem (Cells(i, 1).Text)

Next

End Sub

Luego el Botón OK P, que indica que la película ha sido seleccionada

Se generan los datos de los horarios en VBA:

Private Sub CommandButton4_Click()
Sheets("Horarios").Select
Pelicula = ComboBox1.Text

For i = 2 To pdis
If Pelicula = Cells(i, 1) Then
Sala = i - 1
hcont = Cells(i, Columns.Count).End(xlToLeft).Column
For j = 2 To hcont
ComboBox2.AddItem (Cells(i, j))
Next

End If
Next

End Sub

Luego los espacios Adultos y Niños serán llenados para calcular el precio, en caso de q no hayan sido llenados correctamente se presentara el siguiente mensaje

error Formulario de Excel Avanzado Para boleta de entrada al cine

en caso de haber sido llenados correctamente se presiona se calcula el monto para tanto el caso de que cuente con una tarjeta de socio como no.

en VBA:

Private Sub CommandButton1_Click()

If TextBox1.Value <> "" Or TextBox2.Value <> "" Then
If CheckBox1 = True Then
Ad = TextBox1.Value
Ni = TextBox2.Value
total = (12 * Ad) + (8 * Ni)
MsgBox ("Su total es " & total)
Else
Ad = TextBox1.Value
Ni = TextBox2.Value
total = (17 * Ad) + (10 * Ni)
MsgBox ("Su total es " & total & " soles")
End If
Else
MsgBox ("Por favor Ingresar un valor")
End If

End Sub

y se mostrará el siguiente mensaje

tab1 Formulario de Excel Avanzado Para boleta de entrada al cine

Luego de tener la conformidad del cliente se presiona el botón imprimir y se imprimirán los valores en la siguiente hoja

bole Formulario de Excel Avanzado Para boleta de entrada al cine

en VBA:

Private Sub CommandButton2_Click()

Sheets("Boleta").Select
Cells(3, 2) = Pelicula
Cells(5, 2) = Sala
Cells(7, 2) = TextBox1.Value
Cells(8, 2) = TextBox1.Value
Cells(10, 2) = total

End Sub

Para pasar al siguiente cliente se presiona el Botón siguiente y se reiniciaran los valores.

en vba:

Private Sub CommandButton3_Click()
TextBox1.Value = ""
TextBox2.Value = ""

Sheets("Boleta").Select
Cells(3, 2) = ""
Cells(5, 2) = ""
Cells(7, 2) = ""
Cells(8, 2) = ""
Cells(10, 2) = ""

End Sub

Por último si de desea abortar la misión se presiona el botón cancelar:

Private Sub CommandButton5_Click()
UserForm1.Hide
End Sub

Formulario de Excel Avanzado para boleta de entrada al cine

 

Elaborado por: Luis Loayza

Deja una respuesta

Los campos requeridos estan marcados con *.