Cargar un ComboBox con datos filtrados de una tabla

16/10/2017 - 14:07 por tmiralles1970 | Informe spam
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

Preguntas similare

Leer las respuestas

#6 Emilio
19/10/2017 - 22:52 | Informe spam
-
¡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:

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 [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
escribió en el mensaje de
noticias:


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:
> ¡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:
>
> 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
Respuesta Responder a este mensaje
#7 tmiralles1970
20/10/2017 - 08:21 | Informe spam
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:
-
¡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:

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 [MS-MVP Access 2006/11]
> http://www.mvp-access.com/foro
> http://www.mvp-access.es/emilio
> escribió en el mensaje de
> noticias:
>
>
> 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:
> > ¡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:
> >
> > 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
Respuesta Responder a este mensaje
#8 Emilio
20/10/2017 - 19:27 | Informe spam
-
¡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:

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:
-
¡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:

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 [MS-MVP Access 2006/11]
> http://www.mvp-access.com/foro
> http://www.mvp-access.es/emilio
> escribió en el mensaje de
> noticias:
>
>
> 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:
> > ¡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:
> >
> > 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
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida