Excel - Añadir varias columnas a un combobox con VBA

 
Vista:

Añadir varias columnas a un combobox con VBA

Publicado por jt (6 intervenciones) el 09/03/2007 11:15:57
Mi problema es el siguiente: en combobox1, elijo una variable (hasta aquí bien), ese valor seleccionado me sirve para filtrar los datos de una hoja . El problema viene al intentar introducir esos datos filtrados en un combobox2 para seleccionar uno de los datos filtrados.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:Añadir varias columnas a un combobox con VBA

Publicado por Abraham Valencia (2415 intervenciones) el 09/03/2007 18:32:29
Vayamos por partes. En tu primer combobox elijes un valor (no es lo mismo que varibale!!!), dependiendo de ese valor, en tu hoja se filtran los datos. Por lo que dices, tienes un codigo que introduce estos datos filtrados a tu segundo combobox, pero: Cual es el problema en si??? dices "el problema viene al intentar introducir esos datos filtrados en un combobox2 para seleccionar uno de los datos filtrados.", pero no especificas cual es el dichos problema.

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Añadir varias columnas a un combobox con VBA

Publicado por haver (149 intervenciones) el 09/03/2007 18:43:19
este codigo te copia las filas que estan visibles ( el autofiltro solo oculta las filas ) solo adecualo a tu codigo

Sub combobox1_change()

Range("A1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=ComboBox1.Value

finalrow2 = Range("A65536").End(xlUp).Row
DATOS = 2
Do While DATOS <> finalrow2

If Range("A" & DATOS).Rows.Hidden = False Then
ComboBox2.AddItem Range("A" & DATOS)
End If

DATOS = DATOS + 1

Loop
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Añadir varias columnas a un combobox con VBA

Publicado por haver (149 intervenciones) el 09/03/2007 18:55:23
te eh enviado el ejemplo a tu correo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Añadir varias columnas a un combobox con VBA

Publicado por jt (6 intervenciones) el 09/03/2007 19:06:44
Gracias, el problema es como meto las filas seleccionadas (p.ej. 3 columnas por fila) en combobox2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Añadir varias columnas a un combobox con VBA

Publicado por haver (149 intervenciones) el 09/03/2007 19:13:14
Prueba esto donde CHR(32) es el codigo de un espacio en blanco

ComboBox1.AddItem Range("A1") & Chr(32) & Range("B1")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Añadir varias columnas a un combobox con VBA

Publicado por jt (6 intervenciones) el 09/03/2007 19:39:03
No funciona, ahora no me muestra ni una columna
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Añadir varias columnas a un combobox con VBA

Publicado por haver (149 intervenciones) el 09/03/2007 19:46:30
Pues a mi el codigo si me funciona seria de ver como esta el tuyo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Añadir varias columnas a un combobox con VBA

Publicado por jt (6 intervenciones) el 09/03/2007 19:49:49
Vale, rectificado lo anterior sale en 1 sola columna lo de las dos. Puede servir pero, si necesitara que salieran en dos columnas en lugar de en una??
Muchas gracias.
jt
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Añadir varias columnas a un combobox con VBA

Publicado por haver (149 intervenciones) el 09/03/2007 21:03:03
mmm Pos si quieres que se separen por columas utiliza una lista o pon mas chr(13) entre cada una o prueba poniendo un CHR(9) ( tab horizontal )
para referencia utiliza la ayuda de excel sombrea additem o combobox y ahi le defines mas opciones...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Añadir varias columnas a un combobox con VBA

Publicado por JC (1 intervención) el 04/04/2007 21:57:07
Hola a todos, bueno tengo el mismo problema, saben si el codigo funciona para VB6? o me podrian alcanzar un codigo similar para VB6? gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Añadir varias columnas a un combobox con VBA

Publicado por Pablo (2 intervenciones) el 19/02/2012 21:00:57
Para añadir datos a mas de una columna, se debe especificar la cantidad de las mismas en la propiedad "Columncount" del control.
Una vez que las columnas estan definidas, los datos se agregan de la siguiente forma:

Combobox1.additem
Combobox1.List(0,0) = "Dato Columna 1"
Combobox1.List(0,1) = "Dato Columna 2"


Con un contador en el primer parametro de la propiedad List, se puede incrementar el valor de la Fila donde se agregaran los datos.

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Añadir varias columnas a un combobox con VBA

Publicado por Pablo (2 intervenciones) el 19/02/2012 21:02:25
PD: Estas propiedades se pueden usar tambien con el control Listbox
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Añadir varias columnas a un combobox con VBA

Publicado por Miguel (2 intervenciones) el 06/04/2013 11:23:11
Hola Pablo,
En la situación descrita me encuentro yo, pero el caso es que yo tengo este código en el programa y solo me muestra una columna, así que no entiendo porque. Te muestro el código programado haber si puedes decirme cual es mi fallo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Sub Suministra_Click()
    Dim I As Integer, Pos As Integer, numReg As Integer, Pos1 As Integer
    ComboBox1.Visible = True
    Sheets("Productos").Select
    Range("B1").Select
    Do While ActiveCell <> Productos.Text
        Productos.AddItem ActiveCell.Value
        ActiveCell.Offset(1, 0).Select
        Celda = ActiveCell.Address
    Loop
    Pos = Mid(Celda, 4, 3) + 1 'Detecta en que linea se posiciona al principio del fichero
    Range("B" & Pos).Select
    Do While ActiveCell = Empty
        Productos.AddItem ActiveCell.Value
        ActiveCell.Offset(1, 0).Select
        Celda = ActiveCell.Address
    Loop
    Pos1 = Mid(Celda, 4, 3) - 1 'Detecta en que linea se posiciona al final del fichero
    numReg = (Pos1 - Pos)   'nº de registros que cumplen la condición
    Range("B" & Pos).Select
    ComboBox1.Clear
    For I = 0 To numReg   'Cargar las lineas del ComboBox
        Productos.AddItem ActiveCell.Value
        ComboBox1.AddItem
        ComboBox1.List(I, 0) = Range("C" & Pos) & Chr(9)
        ComboBox1.List(I, 1) = Range("D" & Pos)
        Pos = Pos + 1
    Next
End Sub


Un saludo y muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Añadir varias columnas a un combobox con VBA

Publicado por Miguel (2 intervenciones) el 06/04/2013 17:23:35
Ya funciona, este es el código.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Private Sub Suministra_Click()
    Dim I As Integer, Pos As Integer, numReg As Integer, Pos1 As Integer
    ComboBox1.Visible = True
    Sheets("Productos").Select
    Range("B1").Select
    Do While ActiveCell <> Productos.Text
        Productos.AddItem ActiveCell.Value
        ActiveCell.Offset(1, 0).Select
        Celda = ActiveCell.Address
    Loop
    Pos = Mid(Celda, 4, 3) + 1 'Detecta en que linea se posiciona al principio del fichero
    Range("B" & Pos).Select
    Do While ActiveCell = Empty
        Productos.AddItem ActiveCell.Value
        ActiveCell.Offset(1, 0).Select
        Celda = ActiveCell.Address
    Loop
    Pos1 = Mid(Celda, 4, 3) - 1 'Detecta en que linea se posiciona al final del fichero
    numReg = (Pos1 - Pos)   'nº de registros que cumplen la condición
    Range("B" & Pos).Select
    ComboBox1.Clear
    ComboBox1.ColumnCount = 2
    ComboBox1.List = Range("C" & Pos, "D" & Pos).Value
    For I = 0 To numReg   'Cargar las lineas del ComboBox
        ComboBox1.AddItem ActiveCell.Value
        ComboBox1.AddItem
        ComboBox1.List(I, 0) = Range("C" & Pos)
        ComboBox1.List(I, 1) = Range("D" & Pos)
        Pos = Pos + 1
    Next
End Sub


Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar