Modificar datos de listbox al seleccionarlos con el mouse

Tengo un formulario que contiene un listbox. La información del listbox se completa con la información contenida en los distintas hojas del documento. Las distintas hojas están listadas automáticamente y pueden seleccionarse y traerse al listbox desde un ComboBox (ComboBox3_Change())

La idea seria poder cambiar la información contenida en el listbox al cliquear sobre la línea correspondiente y que quede guardada en la hoja correspondiente.

Entiendo que tendría que debería tener tantos TextBox como datos quisiera modificar pero ahí me quedo.

Si hace falta envio por mail el código para darme una mano.

Agradecido siempre.

1 respuesta

Respuesta
1

Ho   l a:

Envíame tu archivo con tu formulario y me explicas cuáles datos quisieras modificar.

Tal vez haya que modificar la forma en que cargas el listbox, pero ya lo reviso y te digo.

Mi correo [email protected]

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

¡Gracias Dante! Ahí envíe el archivo.

Muy considerado de tu parte.

Nos leemos.

Te anexo la primera parte, cargar el listbox con los datos de la hoja.

También te anexo el código para cargar los textbox con los datos del registro seleccionado en el list.

Private Sub ComboBox7_Change()
'Por.Dante Amor
'Carga el list según la hoja seleccionada
    ListBox5.RowSource = ""
    For i = 1 To 8
        Me.Controls("TextBox" & i) = ""
    Next
    If ComboBox7.ListIndex = -1 Or ComboBox7.Text = "" Then Exit Sub
    '
    Set h1 = Sheets(ComboBox7.Value)
    Set h2 = Sheets("Temp")
    h2.Cells.Clear
    h1.Range("A7:I7").Copy h2.Range("A1")
    j = 2
    For i = 8 To h1.Range("A" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "A") = "" Or h1.Cells(i, "A") = "COMENTARIO:" Then Exit For
        '
        h1.Range("A" & i & ":I" & i).Copy h2.Range("A" & j)
        h2.Cells(j, "J") = i
        j = j + 1
    Next
    u = h2.Range("A" & Rows.Count).End(xlUp).Row
    If u = 1 Then Exit Sub
    ListBox5.RowSource = h2.Name & "!A2:J" & u
End Sub
'
Private Sub ListBox5_Click()
'Por.Dante Amor
'Carga los textbox según el registro seleccionado del list
    For i = 1 To 8
        Me.Controls("TextBox" & i) = ""
    Next
    '
    Set h1 = Sheets(ComboBox7.Value)
    fila = ListBox5.List(ListBox5.ListIndex, 9)
    TextBox1 = h1.Cells(fila, "A")
    TextBox2 = h1.Cells(fila, "B")
    TextBox3 = h1.Cells(fila, "C")
    TextBox4 = h1.Cells(fila, "E")
    TextBox5 = h1.Cells(fila, "F")
    TextBox6 = h1.Cells(fila, "G")
    TextBox7 = h1.Cells(fila, "H")
    TextBox8 = h1.Cells(fila, "I")
End Sub

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas