Duda sobre crear una caja de texto y un spinbutton en Microsoft Excel

Necesito ayuda en una tarea que me plantearon.
Crear 3 cajas de texto y un spinbutton. Una de las cajas va la hora, minuto, segundo respectivamente.
Con el spinbutton ir avanzando ya sea la hora, minuto o segundo cuando este seleccionado la caja.

1 respuesta

Respuesta
1
Ante todo recibe mis saludo; lo primero que debes hacer es crear un formulario (UserForm) en el entorno de VBA de Excel, en el cual debes incluir los tres TextBox en donde quieres que aparezca la hora y un SpinButton. Una vez hecho esto, debes incluir el siguiente códio en tu área de programación:
'----------------- Inicio del Programa -----------------------
Dim numero As Integer
Dim tiempo, hora, minuto, segundos
Private Sub SpinButton1_SpinUp()
Select Case numero
Case 1
Hora_T = Val(TextBox1.Text)
If (Hora_T >= 23) Then
TextBox1.Text = "0"
Hora_T = -1
End If
TextBox1.Text = Hora_T + 1 'SpinButton1.Value
Case 2
Minutos_T = Val(TextBox2.Text)
If (Minutos_T >= 59) Then
TextBox2.Text = "0"
Minutos_T = -1
End If
TextBox2.Text = Minutos_T + 1
Case 3
Segundos_T = Val(TextBox3.Text)
If (Segundos_T >= 59) Then
TextBox3.Text = "0"
Segundos_T = -1
End If
TextBox3.Text = Segundos_T + 1
End Select
End Sub
Private Sub SpinButton1_SpinDown()
Select Case numero
Case 1
Hora_T = Val(TextBox1.Text)
If (Hora_T <= 0) Then
TextBox1.Text = "0"
Hora_T = 1
End If
TextBox1.Text = Hora_T - 1
Case 2
Minutos_T = Val(TextBox2.Text)
If (Minutos_T <= 0) Then
TextBox2.Text = "0"
Minutos_T = 1
End If
TextBox2.Text = Minutos_T - 1
Case 3
Segundos_T = Val(TextBox3.Text)
If (Segundos_T <= 0) Then
TextBox3.Text = "0"
Segundos_T = 1
End If
TextBox3.Text = Segundos_T - 1
End Select
End Sub
Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
numero = 1
End Sub
Private Sub TextBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
numero = 2
End Sub
Private Sub TextBox3_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
numero = 3
End Sub
Private Sub UserForm_Initialize()
numero = 1
tiempo = Time
hora = Hour(tiempo)
minuto = Minute(tiempo)
segundos = Second(tiempo)
TextBox1.Text = hora
TextBox2.Text = minuto
TextBox3.Text = segundos
End Sub
'------------------ Fin del Programa ----------------
Los cambios de cada valor de tiempo están registrados en el evento doble click de los text box (TextBox), esto quiere decir que para comenzar a usarlos debes hacer doble Click en la caja de texto (TextBox) a la cual quieres modificar.
TextBox1.Text, TextBox2.Text y TextBox3.Text contendran la hora, los minutos y los segundos respectivamente, del reloj del sistema.
En el evento SpinButton1_SpinUp() del SpinButton están registrados los incrementos los valores del tiempo seleccionados; mientras que en el evento SpinButton1_SpinDown() están registrados los dcrementos.
Una papel importante la juegan los (IF) en cada selección de los SpinButton, estos de encargan de verificar si los valores de tiempo están en el rango permitido, que es el siguiente.
Para las horas es de 0 a 24
Para los minutos y segundos es de 0 a 60
Finalmente espero te sirva el programa, de cualquier manera si quieres me envías tu dirección e-mail para enviarte un ejemplo gráfico de la respuesta. Cualquier duda que tengas puedes escribirme.
En la respuesta anterior te envíe el código abierto para que pudieras cambiarle lo que quisieras. Yo te ayude con lo más fuerte, queda de tu parte hacerle cualquier modificación. Estamos en contacto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas