Agregar diferentes datos en la fila de lListBox vb6

Si tengo un ciclo for para llenar un listbox desde texbox(texbox1 = 5 y textbox2 = 20) quiero que el primer item que se agregue a el listbos que sera 5, salga con una hora establecida por mi, no por el de la computadora, y obtener algo asi;
13:00:00"espacio"5
Y que a esta item se le sumen 5 horas para que el siguiente salga de esta manera:
18:00:00"espacio"6 y al siguiente item igualmente se le sumen 5 horas asta que se termine el ciclo que debe de ser asta que llegue a 20. En VB 6
¿Tengo qué hacer otro ciclo dentro del que ya tengo o donde?

2 Respuestas

Respuesta
2

Si el resultado que esperas es este:

Te anexo la macro

Private Sub UserForm_Activate()
'Por.Dante Amor
    hora = 13
    n = 5
    For i = 1 To 20
        ListBox1.AddItem hora & ":00:00" & " " & n
        hora = hora + 5
        n = n + 1
    Next
End Sub

Ya no entendí si quieres mostrar esto: 13:00:00"espacio"5

o esto: 21:30:00 - 9/30/2014 - Lunes

Te anexo una nueva macro, la primera vez dijiste que había que sumarle 5 horas, ahora mencionas que 18 horas.

En la macro en esta línea h1. Cells(i, "A") = TimeSerial(18, 0, 0) puedes cambiar las horas.

Private Sub UserForm_Activate()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets.Add
    h1.Columns("B").NumberFormat = "h:mm:ss;@"
    h1.Range("B1") = TimeSerial(21, 30, 0)
    n = 5
    For i = 2 To 21
        h1.Cells(i, "A") = TimeSerial(18, 0, 0)
        h1.Cells(i, "B") = h1.Cells(i - 1, "B") + h1.Cells(i, "A")
        ListBox1.AddItem Format(h1.Cells(i - 1, "B"), "h:mm:ss;@") & " " & n
        n = n + 1
    Next
    Application.DisplayAlerts = False
    h1.Delete
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Hola

le dejare lo que tengo y lo que estoy intentando hacer, para poder entendernos un poco mas.

Tengo este código:

Private Sub CommandButton1_Click()
Dim x As Date
Dim num As Integer
TextBox1.Text = "9/30/2014"
TextBox2.Text = "10/31/2014"
For x = DateValue(TextBox1.Text) To DateValue(TextBox2.Text)
num = Weekday(x)
If num <> 7 And num <> 1 Then
 Select Case Weekday(num)
   Case vbMon
   Case vbTue
   Case vbWen
   Case vbThu
   Case vbFri
   End Select
ListBox1.AddItem (Format$(Date, "hh:mm:ss - ") & x & Format$(num, " - dddd"))
End If
Next x
End Sub

esto me da lo siguiente:

lo que intento obtener es que en la primer fecha que es 30/09/2014 en donde esta 00:00:00 inicie con las 21:30:00 y se le sumen 18 horas para obtener la siguiente hora que seguirá en la siguiente fecha y de igual manera a la hora que se obtenga se le sumen 18 horas así sucesivamente asta que termine el ciclo.

Muchas gracias por su tiempo y por no explicarme bien al principio mil disculpas.

Saludos

Manuel Fco.

Veo que ya tienes un formulario, supongo que la fecha inicial está en el textbox, luego la fecha final está en otro textbox, ¿y también supongo que el intervalo de horas lo vas a tomar del otro textbox?

Envíame tu archivo para adaptar la salida al listbox.

Listo, le mande al correo el archivo.

Muchas Gracias.

Manuel Fco.

Listo! Te envié el archivo con la macro actualizada.

Te envié el archivo, el listbox se carga con la hora, la fecha y el día, ejemplo:

Si le falta algo a la macro avísame para revisarlo, si está como lo necesitas, podrías valorar la respuesta.

Al final de mi respuesta dice: “Es una buena respuesta” y puedes seleccionar una de 3 opciones:

  • Excelente
  • Si
  • No

Saludos. Dante Amor

es exactamente lo que lo que me hace falta, solo que no me ha llegado a mi correo el archivo, le dejo mi correo por si a caso hubo un error en el envío.

[email protected]

Gracias.

Código:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    h1.Columns("B").NumberFormat = "dd/mm/yyyy hh:mm:ss"
    h1.Cells.Clear
    If TextBox1 = "" Then Exit Sub
    If TextBox2 = "" Then Exit Sub
    If TextBox3 = "" Then Exit Sub
    If Not IsDate(TextBox1) Then Exit Sub
    If Not IsDate(TextBox2) Then Exit Sub
    If DateValue(TextBox2.Text) < DateValue(TextBox1.Text) Then Exit Sub
    horas = Int(Val(TextBox3.Value))
    minutos = Int(((Val(TextBox3.Value)) - horas) * 60)
    h1.Range("A1") = TimeSerial(21, 30, 0)
    h1.Range("B1") = DateValue(TextBox1.Text) + h1.Range("A1")
    h1.Range("C1") = DateValue(TextBox2.Text)
    n = 5
    i = 1
    Do While Cells(i, "B") < Range("C1")
        i = i + 1
        h1.Cells(i, "A") = TimeSerial(horas, minutos, 0)
        h1.Cells(i, "B") = h1.Cells(i - 1, "B") + h1.Cells(i, "A")
    Loop
    For i = 1 To h1.Range("A" & Rows.Count).End(xlUp).Row
        h = Format(h1.Cells(i, "B"), "hh:mm:ss")
        f = Format(h1.Cells(i, "B"), "dd/mm/yyyy")
        d = Format(h1.Cells(i, "B"), "dddd")
        ListBox1.AddItem h & " - " & f & " - " & d
    Next
End Sub

Va el código:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    h1.Columns("B").NumberFormat = "dd/mm/yyyy hh:mm:ss"
    h1.Cells.Clear
    If TextBox1 = "" Then Exit Sub
    If TextBox2 = "" Then Exit Sub
    If TextBox3 = "" Then Exit Sub
    If Not IsDate(TextBox1) Then Exit Sub
    If Not IsDate(TextBox2) Then Exit Sub
    If DateValue(TextBox2.Text) < DateValue(TextBox1.Text) Then Exit Sub
    horas = Int(Val(TextBox3.Value))
    minutos = Int(((Val(TextBox3.Value)) - horas) * 60)
    h1.Range("A1") = TimeSerial(21, 30, 0)
    h1.Range("B1") = DateValue(TextBox1.Text) + h1.Range("A1")
    h1.Range("C1") = DateValue(TextBox2.Text)
    n = 5
    i = 1
    Do While Cells(i, "B") < Range("C1")
        i = i + 1
        h1.Cells(i, "A") = TimeSerial(horas, minutos, 0)
        h1.Cells(i, "B") = h1.Cells(i - 1, "B") + h1.Cells(i, "A")
    Loop
    For i = 1 To h1.Range("A" & Rows.Count).End(xlUp).Row
        h = Format(h1.Cells(i, "B"), "hh:mm:ss")
        f = Format(h1.Cells(i, "B"), "dd/mm/yyyy")
        d = Format(h1.Cells(i, "B"), "dddd")
        ListBox1.AddItem h & " - " & f & " - " & d
    Next
End Sub
Respuesta
1

Pero si estoy trabajando con horas seria en formato 24 hrs y ahí esta sumando enteros, para ser mas especificos le comentare que estoy intentando imprimir todas las fechas que esten dentro de un rango de fechas con su respectivo nombre, eso ya lo tengo, pero lo que busco es que la primera fecha tenga una hora asignada ejemplo:

21:30:00 - 9/30/2014 - Lunes

Y a partir de esa hora sumarle 18 horas :

3:30:00. 10/1/2014 Martes

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas