Buenas tardes experto Yoors La macro para ver dos columnas juntas filtradas en un listbox funciona chévere Como sería para ver en el listbox columnas discontinuas, es decir : AC, AH, AM, AX, etc, tomando en cuenta que la columna A tiene datos texto y siempre debe verse en el Listbox y las otras columnas a partir de la B tienen datos numéricos. Muchas gracias Jorge
Dime una cosa quieres que se vea la columna acon la c o con la h. o que tengas la opción para combinbar con culauiera de las columnas.
Tuve una reunión de trabajo por eso no contesté pronto. Si, exactamente se quiere que se visualice siempre la columna A con cualquiera de las otras columnas, porque en la columna A están los datos texto y las otras columnas tienen datos numéricos. Ejemplo: columna a colum b colum c ... etc colum x sillas 2 3 4 Mesas 1 6 15 Manteles 14 10 8 En el listobox que se vea AC o AG o AR... etc Muchas gracias Jorge
A ver prueba lo siguiente: El codigo anteriro reemplazalo por todo esto: Se ha creado un combo, el cual muestra las cabezeras de las columnas, osea columna mesas, columnas b sillas, y así de acuerdo a tus nombres. Al ejecutar el combo este te saldrá vacío y tienes que escoger con que columnas vas a visualizar el listbox. Osea que cuando escojas un dato en el combo, el listbox filtrara tu columna, con la que hayas escogida. Osea columna a con mesas, sillas, y así por el estilo. Pruébalo y me comentas lo que no entiendas, o algún cambio que quieras para realizar. Primero vas a crear un combobox . y dentro de le vas a pegar esto: Private Sub ComboBox1_Change() Application.ScreenUpdating = False X = Me.ComboBox1.ListIndex + 2 Cells(1, X).Select If ActiveCell.Column > 26 Then VALOR = Left(ActiveCell.Address(False, False), 2) Else VALOR = Left(ActiveCell.Address(False, False), 1) End If REF = VALOR Sheets("HOJA2").Visible = True ' para pegar los datos Sheets("HOJA2").Select Range("a:C").Select Selection.ClearContents Range("A1").Select 'luego filtramos lo q queremos ver. crit = "" crit1 = 0 Sheets("Hoja1").Select Range("REF" & ":" & REF).AutoFilter Selection.AutoFilter Field:=1, Criteria1:="<>" & crit, Criteria2:="<>" & crit1 Sheets("HOJA1").Range("A:A").Copy Destination:=Sheets("HOJA2").Range("A1") Sheets("HOJA1").Range(REF & ":" & REF).Copy Destination:=Sheets("HOJA2").Range("B1") Selection.AutoFilter Sheets("hoja2").Select PEPE = Range("B5850").End(xlUp).Row 'Dá rango de lineas para relleno del ListBox Me.ListBox1.RowSource = "A2:B" & PEPE 'Dá rango de columnas para relleno del ListBox Me.ListBox1.ColumnWidths = "70;40" 'ancho de columnas del ListBox Me.ListBox1.ColumnCount = 2 'Cantidad columnas del ListBox Sheets("HOJA2").Visible = False Sheets("hoja1").Select Range("A1").Select Application.ScreenUpdating = True End Sub 'luego al iniciarse el form pega esto. Private Sub UserForm_Initialize() Sheets("HOJA1").Select Range("A1").Select While ActiveCell.Value <> "" ActiveCell.Offset(0, 1).Select Me.ComboBox1.AddItem ActiveCell.Value Wend End Sub