USER FORM

13/03/2007 - 02:29 por Orfao | Informe spam
en un userform tengo 20 optionbutton
a estos le debo asignar el valor verdadero o falso de hoja1!a1:a20
igualmente al modificarlos en el userform debo registrarlos en la celda
correspondiente
esto lo hago uno a uno
es decir:
userform1.combobox1.value=range("hoja1!a1)
userform1.combobox2.value=range("hoja1!a2)
etc..
y cuando lo registro:
range("hoja1!a1)=userform1.combobox1.value
range("hoja1!a2)=userform1.combobox2.value

etc..

la hoja1 esta en un libro addin
esto funciona demasiado lento

de que forma puiedo agilizar este procedimiento ?
talvez algo asi como
for x=1 to 20
userform1.combobox & x =range("hoja1!a"&x)
next

como asigno una serie de valores a una serie de controles (ej:
textbox1=a1; textbox2=a2; ...)

Me alimento del conocimiento de todos

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
13/03/2007 - 07:02 | Informe spam
hola, moises !

[como que sigues...] 'ejercitando la memoria' ?
al final de cuentas ya no se sabe si estamos hablando de optionbuttons... comboboxes... o textboxes :))

op1: si prefieres utiizar un bucle for...next puedes hacer referencia a los nombres de los controles [se supone secuenciales]
for x = 1 to 20
userform1.controls("combobox" & x) = ... etc. etc. etc.
next

op2: tambien podrias dejar vinculados 'permanentemente' cada control a 'su celda'...
[te evitas la necesidad de tomar/devolver/... de/a... cada celda con su cada control] ;)

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

__ la consulta original __
en un userform tengo 20 optionbutton a estos le debo asignar el valor verdadero o falso de hoja1!a1:a20
igualmente al modificarlos en el userform debo registrarlos en la celda correspondiente
esto lo hago uno a uno es decir:
userform1.combobox1.value=range("hoja1!a1)
userform1.combobox2.value=range("hoja1!a2) etc..
y cuando lo registro:
range("hoja1!a1)=userform1.combobox1.value
range("hoja1!a2)=userform1.combobox2.value etc..
la hoja1 esta en un libro addin esto funciona demasiado lento
de que forma puiedo agilizar este procedimiento ?
talvez algo asi como
for x=1 to 20
userform1.combobox & x =range("hoja1!a"&x)
next
como asigno una serie de valores a una serie de controles (ej: textbox1¡; textbox2¢; ...)
Respuesta Responder a este mensaje
#2 Orfao
14/03/2007 - 01:19 | Informe spam
Gracias...
En verdad son diferentes grupor de controloes aunque me explique mal
tu respuesta me sirve.. pero, esos datos los leo de un addin y las asigno a
una matriz para usarla en diferentes procedimientos de otros libros abiertos
el problema es que cuando tengo inicio el procedimiento tarda demasiado en
apareder el userform y luego tambien al cerrarlo y guardar los datos en un
rango tambien se tarda mucho
alguna sulucion a esto ?
Me alimento del conocimiento de todos


"Héctor Miguel" wrote:

hola, moises !

[como que sigues...] 'ejercitando la memoria' ?
al final de cuentas ya no se sabe si estamos hablando de optionbuttons... comboboxes... o textboxes :))

op1: si prefieres utiizar un bucle for...next puedes hacer referencia a los nombres de los controles [se supone secuenciales]
for x = 1 to 20
userform1.controls("combobox" & x) = ... etc. etc. etc.
next

op2: tambien podrias dejar vinculados 'permanentemente' cada control a 'su celda'...
[te evitas la necesidad de tomar/devolver/... de/a... cada celda con su cada control] ;)

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

__ la consulta original __
> en un userform tengo 20 optionbutton a estos le debo asignar el valor verdadero o falso de hoja1!a1:a20
> igualmente al modificarlos en el userform debo registrarlos en la celda correspondiente
> esto lo hago uno a uno es decir:
> userform1.combobox1.value=range("hoja1!a1)
> userform1.combobox2.value=range("hoja1!a2) etc..
> y cuando lo registro:
> range("hoja1!a1)=userform1.combobox1.value
> range("hoja1!a2)=userform1.combobox2.value etc..
> la hoja1 esta en un libro addin esto funciona demasiado lento
> de que forma puiedo agilizar este procedimiento ?
> talvez algo asi como
> for x=1 to 20
> userform1.combobox & x =range("hoja1!a"&x)
> next
> como asigno una serie de valores a una serie de controles (ej: textbox1¡; textbox2¢; ...)



Respuesta Responder a este mensaje
#3 Héctor Miguel
14/03/2007 - 08:02 | Informe spam
hola, moises !

En verdad son diferentes grupor de controloes aunque me explique mal tu respuesta me sirve.
pero, esos datos los leo de un addin y las asigno a una matriz para usarla en diferentes procedimientos de otros libros abiertos
el problema es que cuando tengo inicio el procedimiento tarda demasiado en apareder el userform
y luego tambien al cerrarlo y guardar los datos en un rango tambien se tarda mucho
alguna sulucion a esto ?



si tus ejemplos han estado siendo 'hipoteticos' -???-
no creo que se pueda ofrecer una propuesta 'en concreto' :-(

a menos que veas la forma de 'vincularlos' y aprovechar sus 'eventos' para una actualizacion 'al vuelo' [o en 'tiempo real']...
[creo que] necesitarias ser mas... 'especifico' con la consulta -?-

saludos,
hector.
Respuesta Responder a este mensaje
#4 Orfao
15/03/2007 - 02:44 | Informe spam
Cierto Miguel !
Tienes mucha razon... a veces creo que todos estan enterados de los
detalles de mi trabajo...
tratare de explicarme mejor.

Estoy creando una aplicacion en la que primeramente se habre un addin con un
formulario de entrada donde se debe ingresar el pasword y este se verifica
con unos rangos de la hoja1 que es pertenece al addin.
luego, si es erroneo y luego de tres intentos fallidos el archivo se cierra
y evita que entres, en caso contrario depende de: 2) si eres un usuario comun
abres de imnediato al libro2 donde esta en si la aplicacion y trabajas
normalmente, 2)Si eres superusuario se abre un nuevo formulario con varios
optionbutton que representan los diferentes opciones de la aplicacion y
dependiendo de si estan disponibles o no al pasar al libro 2 apareceran
habilitadas o no en el menu personalizado
ademas de esto el superusuario tiene la habilidad de modificar los niveles
de cada usuario habilitando o desabilitando opciones tanto de los menus como
de la aplicacion misma estos niveles son jerarquicos es decir que si un
usuario de nivel 3 no tiene acceso a unos modulos con unos calculos
determinados el programa le presenta un mensaje en pantalla solicitando la
clave de acceso y tendra que buscar a cualquier usuario de nivel super que
tenga permiso para ese calculo especifico , entonces 1) si no tiene clave
simplemente no accesa a esa informnacion. 2) caso contrario este al
introducir la llave del nivel autorizado le permite el acceso a ese modulo
especifico en ese momento especifico es decir que al salir del modulo a otra
parte de la aplicacion pierde nuevamente el permiso y asi con todos los
mudulos y niveles y usuarios
toda esta informacion esta almacenada en una hoja del addin que es el primer
libro en abrirse como ya lo mencione pero se usan en los modulos del segundo
libro (la aplicacion e si) donde se hacen todas las verificaciones de acceso
, niveles , modulos permitidos y acceso a las opciones del menu,
al addin tiene un tamaño de 2000 kb aprox y el libro2 tiene cerca de 30000 kB
el problema se presenta co0n el codigo que tengo en el addin se me hace
demasiado lento desde que paso desde el prumer userform (passwords) al
segundo (niveles y permisos y opciones) y luego mas se tarda para pasar al
libro2 donde esta la pantala de bienvenida.
esto es en resumen lo que esta pasando..
me ayudas???


Me alimento del conocimiento de todos


"Héctor Miguel" wrote:

hola, moises !

> En verdad son diferentes grupor de controloes aunque me explique mal tu respuesta me sirve.
> pero, esos datos los leo de un addin y las asigno a una matriz para usarla en diferentes procedimientos de otros libros abiertos
> el problema es que cuando tengo inicio el procedimiento tarda demasiado en apareder el userform
> y luego tambien al cerrarlo y guardar los datos en un rango tambien se tarda mucho
> alguna sulucion a esto ?

si tus ejemplos han estado siendo 'hipoteticos' -???-
no creo que se pueda ofrecer una propuesta 'en concreto' :-(

a menos que veas la forma de 'vincularlos' y aprovechar sus 'eventos' para una actualizacion 'al vuelo' [o en 'tiempo real']...
[creo que] necesitarias ser mas... 'especifico' con la consulta -?-

saludos,
hector.



Respuesta Responder a este mensaje
#5 Héctor Miguel
15/03/2007 - 06:34 | Informe spam
hola, moises !

1) con 'toda esa' informacion que comentas se administra desde un addin...
MAS... el 'peso' [combinado] de ambos libros de una 'friolera' de ~32MB
[de seguro que]... el 'problema' del tiempo que se tarda... NO se debe a 'los 20' optionbuttons -???-

2) me gustaria decirte que con los datos 'conocidos' [hasta ahora] es 'facil' determinar las -posibles- 'causas' [pero]...
me imagino que no estamos hablando de 3 lineas de codigo NI de un solo modulo de codigo o formulario :D
[tu ya te estaras imaginando que no es posible con esa 'simplicidad deseada'] :-((

3) [probablemente] habra 'unos cuantos' cruces de codigos/eventos/variables/... en diferentes partes de tu codigo 'total' -???-
[y posiblemente habra tambien 'unas cuantas' formulas come-recursos/tiempo/... sin llegar todavia a algun 'exceso' de formatos] -?-
existe tambien la posibilidad de 'unas cuantas' variables compartidas [mas no se 've' como se inter-relacionan entre los libros] -?-

[creo que] solo 'resta' indicarte alguna pagina [de arranque] donde se trata de 'problemas' de rendimiento en los modelos de excel -?-
1 [David McRitchie] http://www.mvps.org/dmcritchie/excel/slowresp.htm
2 [Charles Williams] http://www.DecisionModels.com/memlimitsc.htm

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

__ la consulta original __
... una aplicacion... primeramente se habre un addin con un formulario... se debe ingresar el pasword
... se verifica con unos rangos de la hoja1 que pertenece al addin.
... si es erroneo y luego de tres intentos fallidos el archivo se cierra
... si eres un usuario comun abres... al libro2... y trabajas normalmente
... superusuario se abre un nuevo formulario con varios optionbutton que representan los diferentes opciones de la aplicacion
... dependiendo de si estan disponibles o no al pasar al libro 2 apareceran habilitadas o no en el menu personalizado
==>> ademas de esto el superusuario tiene la habilidad de modificar los niveles de cada usuario habilitando o desabilitando opciones
==>> estos niveles son jerarquicos... un usuario de nivel 3 no tiene acceso a unos modulos
con unos calculos determinados el programa le presenta un mensaje en pantalla solicitando la clave de acceso
y tendra que buscar a cualquier usuario de nivel super que [etc. etc. etc.]
==>> toda esta informacion... almacenada en una hoja del addin... se usan en los modulos del segundo libro
==>> al addin tiene un tama#o de 2000 kb aprox y el libro2 tiene cerca de 30000 kB [...]
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida