Excel - Generar una Lista a Partir de una Tabla

 
Vista:
Imágen de perfil de Javier

Generar una Lista a Partir de una Tabla

Publicado por Javier (3 intervenciones) el 25/07/2013 16:06:03
Estimados!!!

Espero puedan darme una idea de como hacer lo siguiente.

Tengo una Tabla "TablaDatos" que consta de varias columnas "ID", "Artículo", "Descripción", "Presentación". Quiero generar una Lista en un ComboBox a partir de cualquiera de esas columnas, de tal manera que me permita elegir un item. Por ejemplo, si la columna es "Artículo" quiero que me muestre los artículos existentes, el detalle es que NO debe mostrame dator repetidos en caso de que existan varias celdas con el mismo nombre del artículo. Esto deseo hacerlo en VB.

Nota: La Tabla cambia de tamaño, ya que tengo un formulario que agrega productos a la Tabla. Esto en Access es muy simple, el hecho es que no tenemos licencia de Access y debo programarlo en Excel. Saludos!!!
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 Javier

Generar una Lista a Partir de una Tabla

Publicado por Javier (3 intervenciones) el 29/07/2013 15:00:59
Aquí les dejo el código de como resolví este problema, quizá no es lo mejor pero es práctico. Saludos!!!

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
32
33
Private Sub PList_DropButtonClick()
 
    Dim MyList() As String
    Dim MyAreas As Integer
    Dim MyRows As Integer
    Dim IndI As Integer, IndJ As Integer, IndK As Integer, IndL As Integer
 
    Set MyTable = Sheets("Data").ListObjects("TablaDatos")
    Set MyColumns = MyTable.ListColumns
    Set MyRange = MyColumns.Item("Artículo").Range
 
    MyRange.AdvancedFilter Action:=xlFilterInPlace, Unique:=True
 
    Set MyData = MyRange.Offset(1).Resize(MyRange.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
 
    MyAreas = MyData.Areas.Count
    MyRows = MyData.Count
    ReDim MyList(1 To MyRows)
 
    IndL = 1
    For IndI = 1 To MyAreas
        IndJ = MyData.Areas(IndI).Count
        For IndK = 1 To IndJ
            MyList(IndL + IndK - 1) = MyData.Areas(IndI).Cells(IndK).Value
        Next IndK
        IndL = IndL + IndJ
    Next IndI
 
    PList.List = MyList
 
    Sheets("Data").ShowAllData
 
End Sub
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
Imágen de perfil de xve
Val: 31
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Generar una Lista a Partir de una Tabla

Publicado por xve (73 intervenciones) el 29/07/2013 19:05:48
Hola javier, gracias por comentarlo...
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