los eventos y RefEdit

02/07/2007 - 17:46 por Ivan | Informe spam
hola a todos,

aunque ya he visto en la ayuda de msdn que los controles refedit, a parte de tener ciertas particularidades, vienen con
algunos problemas para algunas ediciones de excel (en concreto para la mia : 2002/xp), hay una cosa que no deja de
llamarme la atencion y que no se si se debe a estos 'defectos' o a que no estoy usando alguna propiedad adecuadamente

el caso es que he estadohaciendo pruebas para poner la direccion del rango seleccionado en formato 'relativo'.

Esto parece no tener problema cuando se trata del rango seleccionado tal cual. Por ej. poniendo en el change algo asi:

refedit1=range(refedit1).address(0,0) ' devuelve el rango asi=> a1 o a1:a2 pej.

1.-aqui aparece la primera curiosidad: si incluyo cualquier otro tipo de instruccion en el change 'vuelve' a 'devolver'
el formato hoja!$a$1. aunque estas instrucciones no esten directamente relacionadas con el tema.

2.- la segunda curiosidad es que, si por ejemplo intento poner como texto del refedit la direccion de currentregion, o
mas concretamente, la direccion de la 1ª celda del currentregion, tampoco lo permite, aparte de devolver el fomrto
hoja-celda. Por ej. <>>

refedit1=range(refedit1).currentregion.cells(1).address(0,0)

me devuelve esto =>

hoja!$a$1

y no hace ningun caso al codigo introducido, ni siquiera usando alguna variable boolean para evitar posibles
repeticiones del change. . Tampoco logro modificar el text del refedit (si no es sobre la referencia seleccionada) desde
ningun otro procedimiento. Y de aqui surge la 3ª duda

3.- aunque he visto que varios de los eventos del refedit no 'suceden' al menos en exel 2002, tampoco acabo de entender
como se suceden los del formulario cuando se pulsa el refedit. Pensaba que se dispararian bien el resize, el Layout, o
al menos el activate al aceptar en el refedit y volverse a mostrar el formulario. Pero por mis pruebas ninguno de estos
parece producirse ni al 'mostrar' el refedit ( y ¿ ocultar el formulario?) ni al volver a mostrarse tras aceptar en
el refedit

bueno, no se si se me ha entendido, y posiblemente tampoco sea muy importante, pero lo mismo es solo modificar el valor
de alguna propiedad que no logro ver. Como siempre agradezco vuestra ayuda.

un saludo y hasta pronto
Ivan
 

Leer las respuestas

#1 Héctor Miguel
03/07/2007 - 06:06 | Informe spam
hola, Ivan !

aunque ya he visto en la ayuda de msdn que los controles refedit, a parte de tener ciertas particularidades
vienen con algunos problemas para algunas ediciones de excel (en concreto para la mia : 2002/xp)
hay una cosa que no deja de llamarme la atencion y que no se si se debe a estos 'defectos' o
a que no estoy usando alguna propiedad adecuadamente
el caso es que he estado haciendo pruebas para poner la direccion del rango seleccionado en formato 'relativo'.
Esto parece no tener problema cuando se trata del rango seleccionado tal cual. Por ej. poniendo en el change algo asi:
refedit1=range(refedit1).address(0,0) ' devuelve el rango asi=> a1 o a1:a2 pej.



-> imagino que tus pruebas no son igual de *sencillas* que la forma de exponerlas en esta consulta -?- por lo que...
[creo que] seria mejor si comentas *que* es lo que realmente necesitas *controlar/hacer/...*
con la seleccion del usuario en un cuadro de edicion de referencias -?-

1.-aqui aparece la primera curiosidad: si incluyo cualquier otro tipo de instruccion en el change 'vuelve' a 'devolver'
el formato hoja!$a$1. aunque estas instrucciones no esten directamente relacionadas con el tema.
2.- la segunda curiosidad es que, si por ejemplo intento poner como texto del refedit la direccion de currentregion
o mas concretamente, la direccion de la 1a celda del currentregion, tampoco lo permite
aparte de devolver el fomrto hoja-celda. Por ej. > refedit1=range(refedit1).currentregion.cells(1).address(0,0)
me devuelve esto => hoja!$a$1



-> notaras que los cuadros de edicion de referencias, cuando son utilizados [p.e.] desde el asistente para funciones,
solo devuelven el nombre de la hoja al seleccionar rangos en hojas diferentes a la celda donde se introduce la formula/funcion
[sin embargo] cuando estos RefEdit's son controles de un formulario [supongo que] necesitan *insistir* con el nombre de la hoja
puesto que no estan vincuados directamente con ninguna de las hojas en el libro -?-

y no hace ningun caso al codigo introducido, ni siquiera usando alguna variable boolean para evitar posibles repeticiones del change.
Tampoco logro modificar el text del refedit (si no es sobre la referencia seleccionada) desde ningun otro procedimiento.
Y de aqui surge la 3a duda
3.- aunque he visto que varios de los eventos del refedit no 'suceden' al menos en exel 2002
tampoco acabo de entender como se suceden los del formulario cuando se pulsa el refedit.
Pensaba que se dispararian bien el resize, el Layout, o al menos el activate al aceptar en el refedit y volverse a mostrar el formulario.
Pero por mis pruebas ninguno de estos parece producirse ni al 'mostrar' el refedit ( y ¿ ocultar el formulario?)
ni al volver a mostrarse tras aceptar en el refedit



-> una forma *segura* de saber si los eventos de un objeto/control/... son disparados/reconocidos/... [o no]
es usando un MsgBox "Nombre del evento" [obviamente] en cada uno de los eventos del objeto/control/...
necesitaras 'saltar' algunos *ofensivos* [como mouseover, mousedown, etc.] ya que resultaran un *estorbo* a la agilidad del evento :))
-> ademas de que exista la posibilidad de que unos eventos inhiban a otros [segun su *momento*] -?-

bueno, no se si se me ha entendido, y posiblemente tampoco sea muy importante
pero lo mismo es solo modificar el valor de alguna propiedad que no logro ver...



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

Preguntas similares