Visual Basic para Aplicaciones - Hacer Referencia a varios Combobox Mediante un bucle

Life is soft - evento anual de software empresarial
 
Vista:

Hacer Referencia a varios Combobox Mediante un bucle

Publicado por ISAEL GARCIA (3 intervenciones) el 15/09/2014 07:01:31
Hola a todos!!

Alguien sabe si es posible hacer referencia a los nombres de los COMBOBOX mediante un bucle, de tal manera que se reduzca el codigo al momento de querer asignar ITEMS a diferentes Combobox, es decir.

Ex: Se tiene un formulario con 4 Combobox, los cuales fueron nombrados como:
Combobox_1
Combobox_2
Combobox_3
Combobox_4

La idea es hacer referencia a cada uno de esos combobox e irle asignando ITEMS mediante un bucle.

For N = 1 To 4 ´Hacer referencia del Combobox_1 hasta el Combobox_4

ComboBox_ & N.AddItem "Item"

Next ´Aumenta N para agregar el Item al siguiente Combobox

Cabe mencionar que esta parte de sintaxis "ComboBox_ & N" esta mal. Esa parte de sintaxis es lo que estoy buscando
Espero sea claro lo que intento hacer. Gracias y 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
sin imagen de perfil

Hacer Referencia a varios Combobox Mediante un bucle

Publicado por Roberto F. (8 intervenciones) el 16/09/2014 01:02:15
Hola:

Para acceder a propiedades te puede funcionar esto:

For N = 1 to 4

Me.OLEObjects("ComboBox" & N)....

Next


Pero para para usar el additem, deberías probar con:
For N = 1 to 4

Me.OLEObjects("ComboBox" & N).Object.AddItem ....

Next



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
0
Comentar
Imágen de perfil de Oscar

Hacer Referencia a varios Combobox Mediante un bucle

Publicado por Oscar (14 intervenciones) el 16/09/2014 15:56:08
Puedes crear una matriz de controles combobox,

Combobox(1)
Combobox(2)
..
Combobox(n)


De esta forma con el bucle bastaria con

For Ind= 1 to n
Combobox(Ind).AddItem ,.,,,

Next Ind
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 JuanC

Hacer Referencia a varios Combobox Mediante un bucle

Publicado por JuanC (565 intervenciones) el 16/09/2014 20:10:15
aquí hay otra posibilidad...

http://www.lawebdelprogramador.com/foros/Excel/1439249-Integrar_un_for_en_macro.html

Saludos, desde Baires, JuanC
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

Hacer Referencia a varios Combobox Mediante un bucle

Publicado por ISAEL GARCIA (3 intervenciones) el 17/09/2014 19:54:18
Les comparto lo que pude hacer, lo cual me funciono como yo queria.

1
2
3
4
5
6
7
8
9
10
11
12
13
Dim v As Variant, ComBx As MSForms.ComboBox
v = Array(ComboBox1, ComboBox2, ComboBox3, ComboBox4, ComboBox5)
 
For j = 1 To GetNumOfColumns
 
            columna(j) = Cells(1, i).Value
 
            For cbx = 0 To UBound(v)
                Set ComBx = v(cbx)
                ComBx.AddItem columna(j)
            Next
 
Next


En cuanto a esta parte, no me quedo muy claro como utilizarla o como declarar los objetos?

1
2
3
4
5
For N = 1 to 4
 
    Me.OLEObjects("ComboBox" & N).Object.AddItem ....
 
Next
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

Hacer Referencia a varios Combobox Mediante un bucle

Publicado por Mauricio De Abreu (1 intervención) el 02/04/2021 00:42:44
Por si le sirve a alguien

Para 8 ComboBox

1
2
3
4
5
6
7
8
9
10
11
12
For ncombo = 1 To 8 ' ncombo es el numero del ComboBox
    With Me.Controls("ComboBox" & ncombo)
        .AddItem "item1"
        .AddItem "item2"
        .AddItem "item3"
        .AddItem "item4"
        .AddItem "item5"
        .AddItem "item6"
        .AddItem "item7"
        .AddItem "item8"
    End With
Next
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