¿Que código puedo utilizar para cargar la hora a un listbox?

Para Elsa: Buenos días. Le saludo en la ocasión de comentarle lo siguiente, estoy intentando cargar desde la columna C de una hoja de excel a un listbox la hora. Pero me la carga así: 0,3423123454. Por favor que puedo hacer, este es el código que estoy utilizando, lo descargue de un ejemplo que usted coloco en la red, mi correo [email protected], gracias:

'Cargar datos al ListBox
Public Sub But_registrar_Click()
On Error GoTo Errores
If Me.Text_Bienes.Value = "" Then Exit Sub
Me.ListBox1.Clear
j = 1
Filas = Range("A1").CurrentRegion.Rows.Count
For i = 2 To Filas
If LCase(Cells(i, j).Offset(0, 9).Value) Like "*" & LCase(Me. Text_Bienes.Value) & "*" Then
Me.ListBox1.AddItem Cells(i, j)

Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, j).Offset(0, 1)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, j).Offset(0, 2)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Format(Cells(i, j).Offset(0, 3), "hh:mm:ss")
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, j).Offset(0, 4)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Cells(i, j).Offset(0, 5)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = Cells(i, j).Offset(0, 6)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = Cells(i, j).Offset(0, 7)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8) = Cells(i, j).Offset(0, 8)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = Cells(i, j).Offset(0, 9)
Else
End If
Next i
Exit Sub
Errores:
MsgBox "Registro no encontrado.", vbExclamation, "Validar información"
End Sub
'
'Activar la celda del registro elegido
Private Sub ListBox1_Click()
Range("A2").Activate
Cuenta = Me.ListBox1.ListCount
Set Rango = Range("A1").CurrentRegion
For i = 0 To Cuenta - 1
If Me.ListBox1.Selected(i) Then
Valor = Me.ListBox1.List(i)
Rango.Find(What:=Valor, LookAt:=xlWhole, After:=ActiveCell).Activate
End If
Next i
End Sub

'Dar formato al ListBox y traer datos de la tabla
Private Sub UserForm_Initialize()
For i = 1 To 10
Me.Controls("Label" & i) = Cells(1, i).Value
Next i
With ListBox1
.ColumnCount = 10
.ColumnWidths = "33 pt;65 pt;65 pt;60 pt;120 pt;100 pt;220 pt;90 pt;90 pt;90 pt"
End With
End Sub

1 respuesta

Respuesta
1

Las instrucciones del pase de la hoja al listbox son correctas, no entendí cuál es tu problema. Mencionas col C pero la macro dice col D, ¿será eso?

Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Format(Cells(i, j).Offset(0, 3), "hh:mm:ss")

Nota: si estás trabajando con un solo UF se puede retirar eso de ME.

Quedo a la espera de tus aclaraciones. O enviame el libro para revisarlo y ver si esa col tiene alguna particularidad.

Este código que dejaste aquí no es de mi autoría ya que difícilmente utilice la expresión Me.

En la macro del botón Registrar (CommandButton2) la sección del pase a libro quedaría así, considerando que ya sabemos por un control anterior de que estos textbox no están vacíos:

'EM: pase de fechas/horas
    ActiveCell.Offset(0, 1).Value = CDate(Text_Fecha.Value)
    ActiveCell.Offset(0, 1).NumberFormat = "dd/mm/yyyy"
    ActiveCell.Offset(0, 2).Value = CDate(Text_Hora.Value)
    ActiveCell.Offset(0, 2).NumberFormat = "h:mm AM/PM"
'-------------

Y para pasar las celdas al Listbox quedaría así:

    For j = 0 To 8
        If j = 1 Then
            ListBox1.List(i, j) = Format(ActiveCell.Offset(0, j).Value, "dd/mm/yyyy")
        ElseIf j = 2 Then
            ListBox1.List(i, j) = Format(ActiveCell.Offset(0, j).Value, "h:mm AM/PM")
        Else
            ListBox1.List(i, j) = ActiveCell.Offset(0, j).Value
        End If
    Next

Estoy tomando el formato de la fila 120 que parece ser el único correcto en tu base.

Ya te devuelvo el libro. Con esto estoy resolviendo los puntos 2 y 3.

Estos son los resultados del código para mostrar fechas/horas desde el UF de Registro:

Si tenés otro UF para modificar registros, tenés que colocar allí las mismas instrucciones utilizadas aquí.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas