Columnas discontinuas en un Listbox

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

1 Respuesta

Respuesta
1
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:=&quot;<>&quot; & crit, Criteria2:=&quot;<>&quot; & crit1
Sheets(&quot;HOJA1&quot;).Range(&quot;A:A&quot;).Copy Destination:=Sheets(&quot;HOJA2&quot;).Range(&quot;A1&quot;)
Sheets(&quot;HOJA1&quot;).Range(REF & &quot;:&quot; & REF).Copy Destination:=Sheets(&quot;HOJA2&quot;).Range(&quot;B1&quot;)
Selection.AutoFilter
Sheets(&quot;hoja2&quot;).Select
PEPE = Range(&quot;B5850&quot;).End(xlUp).Row &#39;Dá rango de lineas para relleno del ListBox
Me.ListBox1.RowSource = &quot;A2:B&quot; & PEPE &#39;Dá rango de columnas para relleno del ListBox
Me.ListBox1.ColumnWidths = &quot;70;40&quot; &#39;ancho de columnas del ListBox
Me.ListBox1.ColumnCount = 2 &#39;Cantidad columnas del ListBox
Sheets(&quot;HOJA2&quot;).Visible = False
Sheets(&quot;hoja1&quot;).Select
Range(&quot;A1&quot;).Select
Application.ScreenUpdating = True
End Sub
&#39;luego al iniciarse el form pega esto.
Private Sub UserForm_Initialize()
Sheets(&quot;HOJA1&quot;).Select
Range(&quot;A1&quot;).Select
While ActiveCell.Value <> &quot;&quot;
ActiveCell.Offset(0, 1).Select
Me.ComboBox1.AddItem ActiveCell.Value
Wend
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas