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 de blackdog2003
1
1
blackdog2003, Mi especialidad es la programación avanzada en Excel, macros de...
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.