Pasar datos de un Listbox a un Textbox

Julio:
Tengo un Userform donde en el, hay varios textbox, donde se cargan datos y estos van a celdas de una hoja de excel (a1 - b1 - c1 - d1), luego de presionar un commandbuton.
Estos datos (de la hoja de excel) son mostrados al presionar otro commandbuton, (dentro del Userform), que abre un listbox, el cual muestra los registros, mediante la propiedad: RowSource A1:D1000
En la ultima consulta que te hice, me enseñaste a eliminar datos de un listbox, que pertenecían a una hoja de excel, y en esta se eliminaba la fila correspondiente.
Lo que necesito, (si fuera posible), es una vez elegido el registro del listbox, llevarlo a los distintos textbox, para poder hacer en uno o en varios de ellos modificaciones, y una vez realizadas, presionando otro commandbuton, llevarlos a la hoja de excel (ya modificados)y mostrarlos en el listbox.

1 respuesta

Respuesta
3
Ya sabes las propiedades de los Listbox con varias columnas, la primera es .column(0) pues en base a ello:
1º Código para te lleve los valores de los Textbox a la hoja en la primera ceda vacía (esto ya lo tenías)
Private Sub CommandButton1_Click()
Range("A1").End(xlDown).Offset(1, 0).Select
ActiveCell.Value = TextBox1
ActiveCell.Offset(0, 1).Value = TextBox2
ActiveCell.Offset(0, 2).Value = TextBox3
End Sub
2º Código en un botón para que la fila seleccionada te la lleve a los textbox, si no has selccionado ninguna y pulsas el botón te lanza un aviso para que selecciones:
Private Sub CommandButton2_Click()
If ListBox1.Text = "" Then
MsgBox "Debe de seleccionar un valor en el Listbox"
Exit Sub
End If
TextBox1 = ListBox1.Column(0)
TextBox2 = ListBox1.Column(1)
TextBox3 = ListBox1.Column(2)
End Sub
3º Código en un botón para que cambies los valores de los Textbox y busque la fila que tienes activa en el Listbox y te cambie los valores por los nuevos que has introducido en los Textbox:
Private Sub CommandButton3_Click()
Range("A1").Select
Do While ActiveCell.Value <> ""
If ActiveCell.Value = ListBox1.Column(0) And ActiveCell.Offset(0, 1).Value = _ ListBox1.Column(1) And ActiveCell.Offset(0, 2).Value = ListBox1.Column(2) Then
Exit Do
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
ActiveCell.Value = TextBox1
ActiveCell.Offset(0, 1).Value = TextBox2
ActiveCell.Offset(0, 2).Value = TextBox3
End Sub
Como veras el ejemplo esta solo con 3 Textbox, tu añades los que necesites.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas