change en CommandBarComboBox

02/10/2006 - 03:43 por Ivan | Informe spam
Hola a todos

tengo unas dudas con unos combox de barra de menus, a ver si podeis
echarme una mano:

tengo dos CommandBarComboBox, uno se carga con los titulos de columna
de una hoja y el otro con los registros de la columna seleccionada en
el 1º. Hasta aqui todo mas o menos bien, pero:

¿como consigo que se despliegue la lista al entrar en el combo, o al
menos al teclear algo? no consigo hallar algo parecido al dropdown de
los combos normales

¿como hago para borrar el contenido (al menos el visible) del 2º si
la entrada del 1º no coincide con ningun titulo o es =""? por lo que
me da la impresion la prop. onaction solo se dispara cuando se sale del
combo, o al menos a eso achaco mis fracasos por ese lado. He visto que
tienen el evento change, pero por la ayuda creo entender que implica el
uso de modulos de clase, y no tengo ni idea de como hacerlo.

¿hay alguna forma de 'atrapar el change' sin usar el change? la verdad
es que suena tonto, pero creo que se me entiende, lo mismo hay alguna
manera. Y, de no ser asi, ¿como pudo hacerlo via modulo de clase, si
no es excesivamente complicado?

Si podeis ayudarme os lo agradezco

Un saluo y hasta pronto
Ivan

Dim opCmbFiltrar As CommandBarComboBox
Dim opCmbFiltrado As CommandBarComboBox
 

Leer las respuestas

#1 Héctor Miguel
02/10/2006 - 04:10 | Informe spam
hola, Ivan !

tengo unas dudas con unos combox de barra de menus...
... uno se carga con los titulos de columna de una hoja y el otro con los registros de la columna seleccionada..
como consigo que se despliegue la lista al entrar en el combo, o al menos al teclear algo?



-> cuando el usuario 'accione' el CommandBarComboBox, 'la lista'... ya debera estar 'ahi' :))

como hago para borrar el contenido (al menos el visible) del 2 si la entrada del 1 no coincide con ningun titulo o es =""?
me da la impresion la prop. onaction solo se dispara cuando se sale del combo, o al menos a eso achaco mis fracasos por ese lado.
He visto que tienen el evento change, pero por la ayuda creo entender que implica el uso de modulos de clase, y no tengo ni idea...



-> a) la propiedad [.onaction] lo que 'determina' es [simplemente] cual es la macro asociada a la accion del CommandBar<button>
b) para borrar/re/poner/... el contenido de un CommandBarComboBox necesitaras de procedimientos 'auxiliares/intermedios/...'

hay alguna forma de 'atrapar el change' sin usar el change? la verdad es que suena tonto, pero creo que se me entiende...



-> si te refieres a 'evitar' que se dispare el evento '_change' de un control [mientras se esta 'actualizando' por 'otros' codigos]...
a) prueba estbleciendo una variable 'publica' de tipo Boolean [en un modulo de codigo 'general']
b) establecela como True -> en los procedimientos que pudieran 'disparar' el evento '_change' de cualquier control
c) 'devuelvela' como False -> al finalizar el procedimiento que modifica el contenido del CommandBarComboBox
d) 'atrapa' el estado de la variable -> como primera linea en el procedimiento '_change' del control [p.e.]
If Mi_Variable = True Then Exit Sub

... de no ser asi, como pudo hacerlo via modulo de clase, si no es excesivamente complicado?



-> [hasta donde se]... los modulos 'de clase', [ya de por si] no son lo 'suficientemente'... sencillos ?
[creo que calificarlos de... 'excesivamente'... complicados ? va a depender de otro tipo de 'factores' y circunstancias] :D

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares