Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Cargar un ComboBox con datos filtrados de una tabla

1,522 views
Skip to first unread message

tmiral...@gmail.com

unread,
Oct 16, 2017, 8:07:47 AM10/16/17
to
Buenas,

Quiero cargar unos datos de la tabla SOCIOS en un ComboBox en un formulario VBA, y lo que escribí fue lo siguiente:

Private Sub UserForm1_Initialize()
Dim rango, celda As Range
Set rango = Range("MyList")
For Each celda In rango
ComboBox1.AddItem celda.Value
Next celda
End Sub

Donde MyList es una lista dinámica de una columna de la tabla SOCIOS.

Lo que me interesaria sería poder discriminar de esa lista los valores que cumplen con un cierto criterio (activos/no activos), especificado en otra columna de la tabla SOCIOS.

Como debería hacerlo? Aunque vengo de VBA Acces, soy novatillo en Excel.

Gracias

Emilio

unread,
Oct 16, 2017, 11:23:33 PM10/16/17
to
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo. Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!
dentro del bucle, antes de hacer el additem verifica si se cumple esa otra
condición y según eso lo haces o no.

Saludos a todos
Emilio [MS-MVP Access 2006/11]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio

escribió en el mensaje de
noticias:b25b4d4a-eb0d-450b...@googlegroups.com...

tmiral...@gmail.com

unread,
Oct 19, 2017, 9:13:28 AM10/19/17
to

Gracias, Emilio

El valor 'activo/no activo' està en una columna adyacente de la lista, però no se cómo referirme a ella dentro del For...Each. ¿Cómo debò hacerlo?

Gracias por la ayuda.






El dimarts, 17 octubre de 2017 5:23:33 UTC+2, Emilio va escriure:

tmiral...@gmail.com

unread,
Oct 19, 2017, 12:25:05 PM10/19/17
to
Después de un ratito de investigación, lo solucioné. Lo comparto para quien interese:

Dim CellCognom As Range

For Each CellCognom In Range("SocisCognom")
If CellCognom.Offset(0, 1) = 1 Then
ComboBox1.AddItem CellCognom.Value
End If
Next CellCognom

Gracias

El dijous, 19 octubre de 2017 15:13:28 UTC+2, tmiral...@gmail.com va escriure:

Emilio

unread,
Oct 19, 2017, 12:26:00 PM10/19/17
to
-------------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
-------------------------------------------------------------------------------
Hola!
con un offset

if Celda.offset(0,X) = lo que sea then ComboBox1.AddItem celda.Value

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
noticias:98d34318-de62-4839...@googlegroups.com...

tmiral...@gmail.com

unread,
Oct 19, 2017, 2:30:16 PM10/19/17
to
Gracias, Emilio

Sigo con mis problemillas... Quiero que el Combo cargue el valor de dos celdas adyacentes, pero al correr el código da error con la variable celda2 (variable de objeto no establecida)

Dim celda1, celda2 As Range

For Each celda1 In Range("SocisCognom")
If celda1.Offset(0, 1) = 1 Then
celda2 = celda1.Offset(0, -1) & " " & celda1
ComboSocis.AddItem celda2.Value
End If
Next celda1

Gracias!




El dijous, 19 octubre de 2017 18:26:00 UTC+2, Emilio va escriure:
> -------------------------------------------------------------------------------
> ¡Importante!: Colabora con el grupo.Contesta a este mensaje
> y dinos si te sirvió o no la respuesta dada. Muchas gracias
> -------------------------------------------------------------------------------
> Hola!
> con un offset
>
> if Celda.offset(0,X) = lo que sea then ComboBox1.AddItem celda.Value
>
> Saludos a todos desde Huelva
> ell

Emilio

unread,
Oct 19, 2017, 4:52:56 PM10/19/17
to
-------------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
-------------------------------------------------------------------------------
Hola!
el mensaje lo deja claro, Excel no sabe que es Celda2, ejecuta paso a paso,
analiza el contenido de las variables y obra en consecuencia
De cualquier modo no tengo claro lo que quieres y ese código así lo indica.
Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
escribió en el mensaje de
noticias:996579d8-14ba-4f70...@googlegroups.com...

tmiral...@gmail.com

unread,
Oct 20, 2017, 2:21:32 AM10/20/17
to
Buenos días,

Son dos columnas, con el nombre una y el apellido en la otra. Quiero mostrar, en el Combo, estos dos campos juntos, de ahí la razón de crear una variable celda2 que concatene los dos valores, con un espacio entre ellos.

Finalmente, lo conseguí sin declarar la variable celda2:

ComboSocis.AddItem celda1.Offset(0, -1) & " " & celda1.Value


Pero me queda la duda de como hacerlo si hubiera sido necesario utilitzar una segunda variable. No se cómo declarar esa variable. A mi parecer, tiene los mismos datos que celda1, de tipo string.

Cómo deberia declararse celda2 para poder darle un valor?:

celda2 = celda1.Offset(0, -1) & " " & celda1
ComboSocis.AddItem celda2.Value

Gracias


El dijous, 19 octubre de 2017 22:52:56 UTC+2, Emilio va escriure:

Emilio

unread,
Oct 20, 2017, 1:27:25 PM10/20/17
to
-------------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
-------------------------------------------------------------------------------
Hola!
en primer lugar declaras celda2 como rango, no como texto que es lo que
debería ser, por otro lado celda la declaras como variant (por defecto) en
lugar de range, que es lo que debería ser.

De cualquier modo, celda2 es una variable a todas luces innecesaria,

ComboSocis.AddItem celda1.Offset(0, -1) & " " & celda1.Value

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
escribió en el mensaje de
noticias:1527ffc5-7f91-4aa7...@googlegroups.com...
0 new messages