Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Avanzar Hora en un textBox

376 views
Skip to first unread message

kaliman

unread,
Jun 19, 2008, 7:37:20 PM6/19/08
to
Holas,

Este es un programa con tres textBox, bueno no se si se puede con un
solo textBox, avanzar la hora, minuto y segundos individualmente con
el SpinButton en un solo textBox

Gracias,
Cesar

Hola, 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ódigo
en tu area 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 estan 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() estan registrados los dcrementos.

Una papel importante la juegan los (IF) en cada seleccion 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 envias tu dirección e-mail para enviarte un ejemplo gráfico de la
respuesta. Cualquier duda que tengas puedes escribirme. Espero tu
calificación.
Atentamente; Black Dog.

Héctor Miguel

unread,
Jun 21, 2008, 11:39:42 PM6/21/08
to
hola, Cesar !

> Este es un programa con tres textBox, bueno no se si se puede con un solo textBox

> avanzar la hora, minuto y segundos individualmente con el SpinButton en un solo textBox ...

por que no comentas cual seria el objetivo/uso practico/... de utilizar un solo spinbutton...
para (controlar ?) tiempos (horas, minutos y segundos) tambien con un solo textbox ???

probablemente se podria encontrar alguna forma menos "exhaustiva"
(a reserva de los detalles y el procedimiento que describas "al detalle")

saludos,
hector.


kaliman

unread,
Jun 22, 2008, 11:53:10 PM6/22/08
to
On 21 jun, 22:39, "Héctor Miguel" <NOhemiordiS...@PLShotmail.com>
wrote:

> hola, Cesar !
>
> > Este es un programa con tres textBox, bueno no se si se puede con un solo textBox
> >avanzarlahora, minuto y segundos individualmente con el SpinButton en un solo textBox ...

>
> por que no comentas cual seria el objetivo/uso practico/... de utilizar un solo spinbutton...
> para (controlar ?) tiempos (horas, minutos y segundos) tambien con un solo textbox ???
>
> probablemente se podria encontrar alguna forma menos "exhaustiva"
> (a reserva de los detalles y el procedimiento que describas "al detalle")
>
> saludos,
> hector.

Bueno es para cuando quieres trabajar con el textbox, por ejemplo
guardar la hora en una base de datos excel , tengo que programar uno
por uno los tres textbox en cambio si fuera uno solo me ahorraria la
programacion.
Saludos,
Cesar

Héctor Miguel

unread,
Jun 23, 2008, 12:56:58 AM6/23/08
to
hola, Cesar !

> Bueno es para cuando quieres trabajar con el textbox, por ejemplo guardar la hora en una base de datos excel

> tengo que programar uno por uno los tres textbox en cambio si fuera uno solo me ahorraria la programacion...

(creo que) utilizando un solo spinbutton y un solo textbox va a resultar un poco "tardadito" encontrar la hora que necesitas -???-

suponiendo un TextBox1 y un SpinButton1 en un UserForm_X...

1) establece las propiedades del spinbutton en el intervalo por segundos de 1 a 86400 (24 * 60 * 60):
min = 1
max = 86400

2) copia/pega las siguientes lineas en el modulo de codigo de ese formulario:

Private Sub SpinButton1_Change()
TextBox1 = CDate(SpinButton1 / 24 / 60 / 60)
End Sub

3) probablemente sea mas "agil" sustituir el spinbutton por un scrollbar (ScrollBar1) con los mismos min=1 y max=86400
y cambiar el codigo a lo siguiente:

Private Sub ScrollBar1_Change()
TextBox1 = CDate(ScrollBar1 / 24 / 60 / 60)
End Sub

saludos,
hector.

__ OP __


>> Este es un programa con tres textBox, bueno no se si se puede con un solo textBox

>> avanzar la hora, minuto y segundos individualmente con el SpinButton en un solo textBox ...

kaliman

unread,
Jun 25, 2008, 9:02:55 PM6/25/08
to
On 22 jun, 23:56, "Héctor Miguel" <NOhemiordiS...@PLShotmail.com>
wrote:
> hola, Cesar !
>
> > Bueno es para cuando quieres trabajar con el textbox, por ejemplo guardar lahoraen una base de datos excel

> > tengo que programar uno por uno los tres textbox en cambio si fuera uno solo me ahorraria la programacion...
>
> (creo que) utilizando un solo spinbutton y un solo textbox va a resultar un poco "tardadito" encontrar lahoraque necesitas -???-

>
> suponiendo un TextBox1 y un SpinButton1 en un UserForm_X...
>
> 1) establece las propiedades del spinbutton en el intervalo por segundos de 1 a 86400 (24 * 60 * 60):
>     min = 1
>     max = 86400
>
> 2) copia/pega las siguientes lineas en el modulo de codigo de ese formulario:
>
> Private Sub SpinButton1_Change()
>   TextBox1 = CDate(SpinButton1 / 24 / 60 / 60)
> End Sub
>
> 3) probablemente sea mas "agil" sustituir el spinbutton por un scrollbar (ScrollBar1) con los mismos min=1 y max=86400
>     y cambiar el codigo a lo siguiente:
>
> Private Sub ScrollBar1_Change()
>   TextBox1 = CDate(ScrollBar1 / 24 / 60 / 60)
> End Sub
>
> saludos,
> hector.
>
> __ OP __
>
>
>
> >> Este es un programa con tres textBox, bueno no se si se puede con un solo textBox
> >>avanzarlahora, minuto y segundos individualmente con el SpinButton en un solo textBox ...

>
> > por que no comentas cual seria el objetivo/uso practico/... de utilizar un solo spinbutton...
> > para (controlar ?) tiempos (horas, minutos y segundos) tambien con un solo textbox ???
>
> > probablemente se podria encontrar alguna forma menos "exhaustiva"
> > (a reserva de los detalles y el procedimiento que describas "al detalle")- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

Muchas gracias, excelente

Saludos,
Cesar

0 new messages