Combobox a otro Combobox filtrandose

24/06/2005 - 21:07 por José A. Castrejón | Informe spam
Buenas tardes, tengo en un archivo 2 hojas : listas y cheques
en la hoja listas tengo defuinido el rango "Cuentas" que abarca de a3 hasta
a13
ejem BBVA, Scotia, Banamex y en la hoja cheques tengo columnas :

A b c d e
Cuenta Cheq Mes Fecha Importe

en un combobox de userform deseo que aparezcan las cuentas del rango
cuentas, hasta ahí voy bien. lo que deseo es que al seleccionar una cuenta,
en el siguiente combobox me aparezcan los cheques que correspondan solo a la
cuenta seleccionada... como lo puedo hacer ?

Como Siempre gracias

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
25/06/2005 - 02:06 | Informe spam
hola, José !

... en un archivo 2 hojas : listas y cheques
... hoja listas tengo defuinido el rango "Cuentas"
... hoja cheques tengo columnas:
A b c d e
Cuenta Cheq Mes Fecha Importe
... un combobox de userform... las cuentas del rango cuentas... que al seleccionar una
... en el siguiente combobox me aparezcan los cheques que correspondan solo a la cuenta seleccionada



no te resultaria mas 'practico' usar [simplemente] la opcion de los autofiltros en la hoja de cheques ?
si los combos y el userform son 'imprescindibles'... puedes [tambien] usar los autofiltros para el 'llenado' del combo2 ;)

comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#2 José A. Castrejón
27/06/2005 - 18:11 | Informe spam
Gracias por tu respuesta, efectivamente me resultaria más práctico, sin
embargo por peticion de mis jefes, el usuario no debe manipular las hojas de
datos.
Esta es una aplicación para control de tesoreria, entonces toda la
aplicación funciona a traves de userforms.
Lo que trato e hacer con estos combobox es la parte de la aplicacion que
permite modificar un registro de la bd. la intencion es que el usuario
seleccione el deposito o cheque de la cuenta utilizando como medio de
referencia en primera instancia el nombre de una cuenta y despues que
seleccione el el deposito o cheque que quiera modificar pero solo de la
primera cuenta seleccionada.
Si no se puede hacer lo que yo pretendo, entonces, ¿ como podria desde vba
quitar y asignar un nombre de rango ? obviamente primero ordenandolo algo
como :

selecciono una cuenta, despues el macro ordena los registros con llave
principal de cuentas si la cuenta es por ejemplo BBVA, entonces el macro debe
selecionar los registros que correspondan a la cuenta seleccionada y asignar
un nombre de rango asi este nuevo nombre lo asigno al segundo combobox.
...se puede ?
Ya tengo el macro que ordena pero como hago lo otro ?
gracias por su ayuda


"Héctor Miguel" escribió:

hola, José !

> ... en un archivo 2 hojas : listas y cheques
> ... hoja listas tengo defuinido el rango "Cuentas"
> ... hoja cheques tengo columnas:
> A b c d e
> Cuenta Cheq Mes Fecha Importe
> ... un combobox de userform... las cuentas del rango cuentas... que al seleccionar una
> ... en el siguiente combobox me aparezcan los cheques que correspondan solo a la cuenta seleccionada

no te resultaria mas 'practico' usar [simplemente] la opcion de los autofiltros en la hoja de cheques ?
si los combos y el userform son 'imprescindibles'... puedes [tambien] usar los autofiltros para el 'llenado' del combo2 ;)

comentas?
saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
27/06/2005 - 21:26 | Informe spam
hola, José !

... por peticion de mis jefes, el usuario no debe manipular las hojas de datos.
... para control de tesoreria... la aplicacion funciona a traves de userforms
... trato... con estos combobox... la parte... que permite modificar un registro de la bd
... que el usuario seleccione... una cuenta y despues... el deposito o cheque que quiera modificar
... Si no se puede... lo que yo pretendo ...como podria desde vba quitar y asignar un nombre de rango?
... algo como: selecciono una cuenta... ordena los registros... selecionar los registros que correspondan
... asignar un nombre de rango... lo asigno al segundo combobox. ...se puede ?
... tengo el macro que ordena pero como hago lo otro?



lo que 'alcanzo a ver' es que existen mas de dos formas de hacer el 'filtrado' de los registros 'que correspondan'
[desde usar rangos 'dinamicos', autofiltros, pasando por 'llenar' coleciones/matrices/o similares y 'demas'] :)
el metodo que pudiera resultar mas 'conveniente' podria depender de...
- la cantidad de registros que pudiera haber en la bd -?-
- la forma en que se vaya a efectuar la 'modificacion'/seleccion del registro 'afectable'/etc. -?-
[no creo que sea 'imprescindible' ordenar la bd en cada cambio de seleccion de cuenta 'maestra']
para 'ofrecer' [alguna/s] alternativa/s de [posible/s] solucion/es, podrias comentar detalles adicionales ? [como]...
- hojas y rangos de donde se 'tomarian' los datos 'base' para el llenado de cada combo
- cuel/es campo(s)/columna(s) del registro 'afectable' son los que 'se permiten' modificar [y donde estan]
- [tu sabes los detalles que no han aparecido o se estan 'quedando en el tintero'] ;)

comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#4 José A. Castrejón
28/06/2005 - 00:03 | Informe spam
Gracias por tu interes, utilizamos 2 userforms para capturar cheques y
depositos, para la modificacion de cheques creo que ya lo solucione, pero
para los depositos te expongo.

tengo 3 hojas inicio, cheques y depositos
en la hoja depositos tengo

cuentas fecha importe concepto

pues bien la parte que estoy haciendo es la de "MODIFICACION DE DEPOSITOS"
entonces tengo un userform con 2 combobox uno de ellos me dice las cuentas de
banco que se usan (rowsource "CUENTAS") al seleccionar una de ellas quiero
que en el segundo combo box aparezcan los importes de los depositos
correspondientes solo a los registros que tengan como cuenta la que yo
seleccione en el primer combobox.

Si yo tengo

BBVA 1/ENERO/2005 1,250.00 PAGO FACTURA X
BBVA 7/ENERO/2005 8,569.00 PAGO FACTURA Y
SCOTIA 7/ENERO/2005 9,563.00 PAGO FACTURA Z

y en el primer combobox selecciono cuenta SCOTIA
en el segundo combobox deben aparecer solo el registgro 3 para que pueda
modificar su fecha o su importe o su concepto.

Asi pues pense en selecionar la cuenta ordenar los datos por la columna
cuenta (hasta aqui ok) pero luego quisiera definir un nombre de rango
"seleccion" donde solo se abarquen los registros de scotia
y asi definir en el segundo combobox como rowsource "seleccion".
Si despues utilizo de nevo el userform y selecciono otra cuenta el nombre
del rango abarcara una cantidad de registros diferentes.

Ojala y me puedas ayudar y gracias de nuevo




"Héctor Miguel" escribió:

hola, José !

> ... por peticion de mis jefes, el usuario no debe manipular las hojas de datos.
> ... para control de tesoreria... la aplicacion funciona a traves de userforms
> ... trato... con estos combobox... la parte... que permite modificar un registro de la bd
> ... que el usuario seleccione... una cuenta y despues... el deposito o cheque que quiera modificar
> ... Si no se puede... lo que yo pretendo ...como podria desde vba quitar y asignar un nombre de rango?
> ... algo como: selecciono una cuenta... ordena los registros... selecionar los registros que correspondan
> ... asignar un nombre de rango... lo asigno al segundo combobox. ...se puede ?
> ... tengo el macro que ordena pero como hago lo otro?

lo que 'alcanzo a ver' es que existen mas de dos formas de hacer el 'filtrado' de los registros 'que correspondan'
[desde usar rangos 'dinamicos', autofiltros, pasando por 'llenar' coleciones/matrices/o similares y 'demas'] :)
el metodo que pudiera resultar mas 'conveniente' podria depender de...
- la cantidad de registros que pudiera haber en la bd -?-
- la forma en que se vaya a efectuar la 'modificacion'/seleccion del registro 'afectable'/etc. -?-
[no creo que sea 'imprescindible' ordenar la bd en cada cambio de seleccion de cuenta 'maestra']
para 'ofrecer' [alguna/s] alternativa/s de [posible/s] solucion/es, podrias comentar detalles adicionales ? [como]...
- hojas y rangos de donde se 'tomarian' los datos 'base' para el llenado de cada combo
- cuel/es campo(s)/columna(s) del registro 'afectable' son los que 'se permiten' modificar [y donde estan]
- [tu sabes los detalles que no han aparecido o se estan 'quedando en el tintero'] ;)

comentas?
saludos,
hector.



Respuesta Responder a este mensaje
#5 Héctor Miguel
28/06/2005 - 03:02 | Informe spam
hola, José !

... 2 userforms para capturar cheques y depositos... cheques creo que ya lo solucione... para los depositos te expongo.
... 3 hojas inicio, cheques y depositos... en la hoja depositos tengo... cuentas fecha importe concepto
... userform con 2 combobox uno... las cuentas de banco que se usan (rowsource "CUENTAS")
al seleccionar una... que en el segundo... aparezcan los importes de los depositos... que tengan como cuenta... el primer combobox.



suponiendo [segun comentas] que en el segundo combo SOLO necesitas los importes de la cuenta seleccionada en el primero...
=> tambien estoy suponiendo que la fila 1 de la hoja depositos SON titulos y que los datos inician desde la columna 'A' -???-
copia las siguientes lineas que corresponden al evento '_change' del primer combobox [el de las cuentas]
en el modulo de codigo del formulario ==Private Sub ComboBox1_Change()
ComboBox2.Clear
Dim Celda As Range
With Worksheets("depositos")
If .[a1].AutoFilter Then .[a1].AutoFilter
.Range(.[a1], .[a65536].End(xlUp)).AutoFilter Field:=1, Criteria1:="=" & ComboBox1
For Each Celda In .Range(.[a2], .[a65536].End(xlUp)).SpecialCells(xlCellTypeVisible)
ComboBox2.AddItem Celda.Offset(, 2)
Next
.[a1].AutoFilter
End With
End Sub

creo que hara falta 'afinar' detalles adicionales [que no he 'adivinado'] pero... comentas?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida