Adicionar Datos a listbox de varias columnas

Y de antemano muchas gracia por el tiempo que dedican a mi pregunta.
Mi problemas es el siguiente estoy trabajando con listbox para cargar datos de excel en vba y no soy programador. Mejor dicho si muy inquieto pero tengo este inconveniente.
Me pasa lo siguiente:
No logro como adicionar datos a la segunda columna del listbox.
Para la primera columna utilizo el siguiente código:
Lista. Clear
Application.ScreenUpdating = False
midato.Activate                                
ActiveCell.Offset(0, 6).Select
    Do While ActiveCell <> ""
       lista.AddItem ActiveCell.Value
        ActiveCell.Offset(0, 2).Select
    Loop
Pero para que me salgan datos en la segunda columna del listbox no he dado.
Y para molestar un poco más quería que al momento de seleccionar un dato del listbox me lo cargue en dos textbox y me permita modificarlo y que me cambie en el listbox la modificación.
Agradeciendo de antemano la atención prestada a la presente pegunta y estando seguros de su valiosa colaboración.

1 Respuesta

Respuesta
2
Te dejo una rutina de ejemplo, que coloqué en el evento Initialize de un userform, para que la adaptes a tu tarea:
Private Sub UserForm_Initialize()
ListBox1.Clear
i = 0
Application.ScreenUpdating = False
'midato.Activate
ActiveCell.Offset(0, 6).Select
    Do While ActiveCell <> ""
        ListBox1.AddItem ActiveCell.Value
        ListBox1.List(i, 1) = ActiveCell.Offset(0, 1)
        ListBox1.List(i, 2) = ActiveCell.Offset(0, 2)
        i = i + 1
        ActiveCell.Offset(1, 0).Select
    Loop
End Sub
------------------------------
Para la modificación de datos del listbox, podes utilizar estas subrutinas. No olvidar de declarar como públicas las variables que serán utilizadas en varios procesos. El botón de comando es el que mueve los valores modificados de 2 textbox a las 2 primeras col de la Lista. Podrías utilizar el evento Exit de cada Textbox también.
Public i As Integer
Public j As Byte

Private Sub CommandButton1_Click()
'pasa valores al listbox, cancela rutina del click
j = 1
ListBox1.List(i, 0) = TextBox1
ListBox1.List(i, 1) = TextBox2
j = 0
End Sub
Private Sub ListBox1_Click()
If j = 1 Then Exit Sub
TextBox1 = ListBox1.List(ListBox1.ListIndex, 0)
TextBox2 = ListBox1.List(ListBox1.ListIndex, 1)
i = ListBox1.ListIndex
End Sub
Sdos
Elsa
* Mi sugerencia para vos: Manual de Formularios
http://aplicaexcel.galeon.com/manuales.htm
Ya pasó 1 semana desde que te envié la respuesta a tu consulta.
SI el tema quedó concluido no olvides finalizarla.
Sdos
Elsa
Excelente Respuesta, Gracias por tu tiempo.
Un sincero agradecimiento y al estar aprendiendo mis dudas irán surgiendo. Espero volver a consultarte.
Dios te bediga

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas