Llenar listbox desde datos guardados en hoja excel

Tengo un formulario con un listbox con varios valores que se cargan desde un rango.

Este es el procedimeinto para guardar:

En resumen esto es lo referente al listbox:

'Con esto concateno los elementos separados por una coma

If ListBox1.Selected(x) = True Then

delimiter = ","

For x = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(x) = True Then
lista = lista & delimiter & ListBox1.List(x, 0)
End If
Next

lista = Mid(lista, 2, Len(lista) - 1)

'Con esto lo agrego a la fila correspondiente

Cells(fila, 17).Value = lista

'Con esto averiguo la fila disponible

fila = Application.WorksheetFunction.CountA(Range("A:A")) + 1

Después tengo un botón para modificar los datos del form llamandolos desde la fila correspondiente

Private Sub CommandButton4_Click()

fila = WorksheetFunction.Match(Val(TextBox1.Value), Sheets(1).Range("A:A"), 0)

bus_id = WorksheetFunction.Match(Val(TextBox1.Value), Sheets(1).Range("A:A"), 0)
With Sheets("Con PJ")
.Range("B" & bus_id).Value = ComboBox2.Value
.Range("C" & bus_id).Value = TextBox4.Value
.Range("D" & bus_id).Value = ComboBox3.Value
.Range("F" & bus_id).Value = ComboBox4.Value
.Range("G" & bus_id).Value = ComboBox5.Value
.Range("H" & bus_id).Value = ComboBox6.Value
.Range("I" & bus_id).Value = ComboBox7.Value
.Range("J" & bus_id).Value = TextBox5.Value
.Range("K" & bus_id).Value = ComboBox1.Value
.Range("L" & bus_id).Value = TextBox6.Value
.Range("M" & bus_id).Value = TextBox7.Value
.Range("N" & bus_id).Value = TextBox8.Value
.Range("O" & bus_id).Value = TextBox9.Value
.Range("P" & bus_id).Value = TextBox11.Value
.Range("R" & bus_id).Value = TextBox10.Value
If Me.OptionButton1.Value = True Then
.Range("E" & bus_id).Value = "VERDADERO"
ElseIf Me.OptionButton2.Value = True Then
Range("E" & bus_id).Value = "FALSO"

End If
End With
MsgBox "Datos modificados en la fila " & fila
End Sub

Como ven me falta cargar la columna Q de la fila ya que es donde se guardan los valores del listbox, pero concatenados, por lo que necesitaría desencatenar y cargar al listbox, con check a los items que se guardaron en esa celda y así poder marcar o desmarcar y volver a modificar.

1 Respuesta

Respuesta
1

Envíame tu archivo con el formulario, me explicas con un ejemplo

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Rodolfo Arce” y el título de esta pregunta.

Ya te lo envié

Te anexo el código para buscar, separar el texto y seleccionar cada dato del listbox.

Private Sub CommandButton3_Click()
'BUSCAR
'Por.Dante Amor
    Set b = h1.Columns("A").Find(TextBox1.Value)
    If Not b Is Nothing Then
        ComboBox2.Value = h1.Cells(b.Row, 2)
        TextBox4.Value = h1.Cells(b.Row, 3)
        ComboBox3.Value = h1.Cells(b.Row, 4)
        If h1.Cells(b.Row, 5) Then OptionButton1.Value = True Else OptionButton2 = True
        ComboBox4.Value = h1.Cells(b.Row, 6)
        ComboBox5.Value = h1.Cells(b.Row, 7)
        ComboBox6.Value = h1.Cells(b.Row, 8)
        ComboBox7.Value = h1.Cells(b.Row, 9)
        TextBox5.Value = h1.Cells(b.Row, 10)
        ComboBox1.Value = h1.Cells(b.Row, 11)
        TextBox6.Value = h1.Cells(b.Row, 12)
        TextBox7.Value = h1.Cells(b.Row, 13)
        TextBox8.Value = h1.Cells(b.Row, 14)
        TextBox9.Value = h1.Cells(b.Row, 15)
        TextBox11.Value = h1.Cells(b.Row, 16)
        TextBox10.Value = h1.Cells(b.Row, 18)
        '
        lista = Split(h1.Cells(b.Row, 17), ",")
        For i = 0 To ListBox1.ListCount - 1
            valor = ListBox1.List(i)
            ListBox1.Selected(i) = False
            For j = LBound(lista) To UBound(lista)
                If valor = lista(j) Then
                    ListBox1.Selected(i) = True
                End If
            Next
        Next
    Else
        MsgBox "No existe el Pj : " & TextBox1
        TextBox1.SetFocus
    End If
    Me.CommandButton1.Enabled = False
    Me.CommandButton4.Enabled = True
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas