Saltar al contenido

Cargar mismos datos en multiples Combobox


Recommended Posts

publicado

Hola buenas.

Tengo este código y quisiera simplificarlo, con un bucle que me cargase lo mismo en los Combobox2 a Combobox8. No encuentro como hacerlo o no se como hacer la pregunta para encontrarlo, porque no lo encuentro. ¿me podéis ayudar? No es urgente, es simplemente que así son demasiadas líneas de código.

Gracias. 

For Each celda2 In rango2
    ComboBox2.AddItem celda2.Value
    ComboBox3.AddItem celda2.Value
    ComboBox4.AddItem celda2.Value
    ComboBox5.AddItem celda2.Value
    ComboBox6.AddItem celda2.Value
    ComboBox7.AddItem celda2.Value
    ComboBox8.AddItem celda2.Value
Next celda2

 

publicado
Hace 48 minutos , Pirtrafilla dijo:

¿me podéis ayudar? No es urgente, es simplemente que así son demasiadas líneas de código.

No sé si en realidad te simplificará algo, pero lo que buscas es:

Dim contr As control
For Each contr In UserForm1.Controls
    If TypeName(contr) = "ComboBox" Then
        contr.AddItem = celda2
    End If
Next contr

 

publicado
Hace 26 minutos , Haplox dijo:

No sé si en realidad te simplificará algo, pero lo que buscas es:



Dim contr As control
For Each contr In UserForm1.Controls
    If TypeName(contr) = "ComboBox" Then
        contr.AddItem = celda2
    End If
Next contr

 

Hola Haplox, es algo parecido. No quiero que lo haga en todos los combobox, solo los del 2 al 8. Tengo más combobox y no deben cambiar el valor. Ahí es donde estoy liado.

 

publicado
Hace 56 minutos , Antoni dijo:

¿Algo así?



For x = 2 To 8: Controls("ComboBox" & x).List = rango2.Value: Next

 

Algo así Antoni. Al final con tu idea lo he solucionado así:

Dim rango2, celda2 As Range
Set rango2 = Worksheets("Configuración").Range("H3:H10")

For Each celda2 In rango2
For x = 2 To 8
Controls("ComboBox" & x).AddItem celda2.Value
Next x
Next celda2

Gracias!

publicado

¿Qué parte de lo que has pedido no he entendido?

Cita

Tengo este código y quisiera simplificarlo

 

¿ Porqué no has usado mi solución ?

Todo tu código puede ser sustituido por esto:

For x = 2 To 8: Controls("ComboBox" & x).List = Sheets("Configuración").Range("H3:H10").Value: Next

 

publicado
Hace 2 horas, Antoni dijo:

¿Qué parte de lo que has pedido no he entendido?

¿ Porqué no has usado mi solución ?

Todo tu código puede ser sustituido por esto:


For x = 2 To 8: Controls("ComboBox" & x).List = Sheets("Configuración").Range("H3:H10").Value: Next

 

Antoni, lo usé y me dio error, por eso lo adapté. Ahora me doy cuenta que lo que hice fue mezclar tu código con parte del mío, por eso no funcionaba.

Pero ya lo he arreglado, el tuyo funciona perfectamente y lo simplifica mucho. Lo dejo con tu código.

Gracias!!

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.