¿Cómo puedo mostrar information de tabla en listbox con más de 10 columnas, para luego seleccionar fila en listbox y en tabla..?
Tengo una base de datos en una tabla en Excel donde registro cierta información "Hoja:DEAL FIX" con varias columnas pero que dependen de la columna "A" ya que allí es donde se encuentran los datos mediante los cuales puedo agrupar y filtrar la información por categorías. Investigando he podido llevar los datos a un listbox en un formulario los cuales los filtra por categorías según datos en columna "A". Con la ayuda de Dante un experot de "todoexpertos" he logrado que al seleccionar uno de los datos del listbox se seleccione dicho dato en la hoja de calculo. Ahora el problema radica en que necesito mostrar más de 10 columnas en el listbox y con AddItem solo puedo traer hasta 10 columnas según me explicaron. Lo que estoy buscando hacer es que la información que se muestre en el listbox sea un resumen de lo que tengo en la hoja de calculo, ahora al seleccionar un item del listbox, se seleccione automáticamente dicho item en la hoja de calculo, para luego mediante un botón abrir otro formulario el cual me traiga ciertos datos de la fila de el item seleccionado en la tabla y modificarlo desde allí. Tengo un buen nivel en Excel realizando fórmulas y demás, pero no tengo mucho conocimiento de vba pero me gustaría aprender. Solo necesito obtener al menos 15 columnas en el listbox para poder seguir avanzando con mi proyecto. Ya he recibido ayuda en este foro que creo que tiene los mejores expertos en la materia. Espero me sigan ayudando. Gracias. Aquí dejo el código:
Private Sub ListBox1_Click()
Sheets("DEALS FIX").Select
fila = ListBox1.List(ListBox1.ListIndex, 9)
Range("A" & fila).Select
End Sub
--------------------------------------------------------------------------------------
Este es del combobox
------------------------------------------------------------------------------------
Private Sub ListItems_Change()
'Avoid movement of the screen
Application.ScreenUpdating = False
'........................................
Dim fila, a As Integer
On Error Resume Next
'Erease data from listbox
ListBox1.Clear
'........................................
'declaration of variables
a = 0 'column
fila = 3 'row
'Bucles while the row is empty
While Sheets("DEALS FIX").Cells(fila, 1) <> Empty
'.................................................
dato = ListItems 'criterion
'here goes the condition
'Var = Sheets("DEALS FIX").Cells(fila, 1)
If Sheets("DEALS FIX").Cells(fila, 1) = dato Then
a = ListBox1.ListCount
ListBox1. AddItem
ListBox1.List(a, 0) = Sheets("DEALS FIX"). Cells(fila, 1)
ListBox1.List(a, 1) = Sheets("DEALS FIX"). Cells(fila, 2)
ListBox1.List(a, 2) = Sheets("DEALS FIX"). Cells(fila, 3)
ListBox1.List(a, 3) = Sheets("DEALS FIX"). Cells(fila, 4)
ListBox1.List(a, 4) = Sheets("DEALS FIX"). Cells(fila, 6)
ListBox1.List(a, 5) = Sheets("DEALS FIX"). Cells(fila, 12)
ListBox1.List(a, 6) = Sheets("DEALS FIX"). Cells(fila, 20)
ListBox1.List(a, 7) = Sheets("DEALS FIX"). Cells(fila, 18)
ListBox1.List(a, 8) = Sheets("DEALS FIX"). Cells(fila, 13)
'ListBox1.List(a, 9) = Sheets("DEALS FIX"). Cells(fila, 24)
'ListBox1.List(a, 10) = Sheets("DEALS FIX").Cells(fila, 25)
'ListBox1.List(a, 11) = Sheets("DEALS FIX").Cells(fila, 28)
'ListBox1.List(a, 12) = Sheets("DEALS FIX").Cells(fila, 29)
ListBox1.List(a, 9) = fila 'this one adds the row number
End If
fila = fila + 1
Wend
Application.ScreenUpdating = True
End Sub
---------------------------------------------------------------------------------
Este es del fomulario
--------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
Label1.Caption = Sheets("DEALS FIX").Cells(2, 1)
Label2.Caption = Sheets("DEALS FIX").Cells(2, 2)
Label3.Caption = Sheets("DEALS FIX").Cells(2, 3)
Label4.Caption = Sheets("DEALS FIX").Cells(2, 4)
Label5.Caption = Sheets("DEALS FIX").Cells(2, 6)
ListBox1.ColumnWidths = "50,60,65,35,160,30,25,30,30,90,90,80,80"
Dim rango, celda As Range
Set rango = Range("DealsCMB")
For Each celda In rango
ListItems.AddItem celda.Value
Next celda
End Sub