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

Sobre formatos de visualización en un textbox

27 views
Skip to first unread message

BADDOG

unread,
Apr 12, 2005, 6:26:02 AM4/12/05
to
Buenas tardes:

Tengo un problema con la visualización de un formato de horas en VBA de
excel 2000. Mi problema reside en que un formulario tiene un Textbox
relacionado con por ejemplo la celda b5 de la hoja 2. Este formulario se abre
al apretar un boton en la hoja1. En el momento de iniciarse el textbox me
tiene que dar el valor de esta celda que es de formato HORAS 00:00:00
(HH:MM:SS), pero por más que lo he intentado lo único que me muestra es un
número con decimales.
Al aplicar el evento de Change a este textbox he conseguido que me lo
visualice bien, pero al cambiar otro textbox, éste vuelve al formato erróneo.
No se como hacer que en todo momento sea un formato de horas.
¿Alguien me puede ayudar?
Gracias por anticipado

Fernando Arroyo

unread,
Apr 12, 2005, 11:48:06 AM4/12/05
to
Para que en el cuadro de texto aparezca la hora con el mismo formato que tenga en la celda, tendrás que poner el siguiente código en el módulo del formulario:

Private Sub UserForm_Initialize()
Me.TextBox1 = [Hoja2!B5].Text
End Sub

Si en la propiedad ControlSource del control tienes la celda, tendrás que borrarla.

Si tu idea es editar el cuadro de texto para volcar la hora a la celda, tendrás que usar algo parecido a:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim dtHora As Date
On Error Resume Next
dtHora = TimeValue(Me.TextBox1)
On Error GoTo 0
If dtHora = 0 Then
MsgBox "La hora introducida en el cuadro de texto no es correcta." & vbNewLine & "Por favor, inténtelo de nuevo."
Cancel = True
Else
[Hoja2!B5] = dtHora
End If
End Sub


Un saludo.


Fernando Arroyo
MS MVP - Excel


"BADDOG" <BAD...@discussions.microsoft.com> escribió en el mensaje news:81C7BD48-2BF8-462B...@microsoft.com...

BADDOG

unread,
Apr 12, 2005, 1:27:01 PM4/12/05
to
Muchas gracias Fernando:

Con la contestación intuyo que lo que yo quería y el tener Controlsource
puesto en la celda [Hoja2!B5], debían dar problemas.

Con tu contestación ya me has resuelto el problema. Solo necesito saber si
lo que pienso es correcto. (Curiosidad)

Fernando Arroyo

unread,
Apr 12, 2005, 1:36:22 PM4/12/05
to
"BADDOG" <BAD...@discussions.microsoft.com> escribió en el mensaje news:1FBDE618-1CF0-4D93...@microsoft.com...

En realidad la propiedad ControlSource sí funcionaba correctamente: se limitaba a coger el valor de la celda y ponerlo tal cual en el cuadro de texto, pero hay que tener en cuenta que Excel almacena las horas como la parte decimal de un número (la parte entera es el día). Por eso tú veías en el cuadro de texto un número con decimales.

Si fuera posible establecer un formato para los cuadros de texto (desgraciadamente, no es posible), la hora hubiera aparecido bien con tan sólo establecer dicho formato a uno de hora, y hubieras podido usar la propiedad ControlSource.

0 new messages