Variable publica en excel no funciona

Hola, les pido un ayuda por favor:
Tengo creado un formulario en donde valida una clave de acceso, si esta es correcta asigno la tecleada a una variable publica: public clave1 as string, la cual la coloca en declaraciones / general.
Una vez que es aceptada la clave se invoca a otro formulario y se procede a captura de campos.
Si la persona desea salirse de la captura automáticamente se protege la información capturada para que esta ni sea modificada manualmente.
Ahora si desea continuar invoca a unos accesos y se presenta de nuevo el formulario de captura a lo cual antes de esto se valida la primera clave capturada y se compara con la dada de alta internamente, es ahí donde no la variable publica no funciona y ocasiona que al momento de validad a través de un IF me indique un NO.
Ya coloque al igual la variable publica en el formato de captura y aún así no puedo hacer que corra el programa, éste es el problema uno.
Problema dos: es que ignoro como quitar lo deshabilitar la POR (cerrar) que automáticamente se coloca al momento de invocar un formulario, lo que pasa es que si se aplica clic en la POR, la macro de protección de hojas no corre.
En espera de una respuesta, le doy las gracias por anticipado.
Saludos.

1 respuesta

Respuesta
1
Aunque tu exposición es algo confusa, creo que el problema no es de la declaración de la variable, sino del valor de la variable en si... quizás está recibiendo un valor demasiado grande para un "string".- Prueba con un "Variant"
Otro error, podría ser que no estás declarando la variable en el procedimiento o función con la declaración "DIM clave1 as string", y aunque SI la reconoce como pública, no sabe en qué procedimiento se declara e inicializa. -Prueba a poner solamente "Public Clave1" en Declaraciones/General, y en el procedimiento o función donde la asignes valor, le pones "DIM Clave1 as string" inmediatamente después del procedimiento "SUB"
Si te está devolviendo un error, indicame el numero y tipo de error para reconocer el problema.-
Tampoco se puede deshabilitar la POR de cerrar el formulario, ya que el excel usa el tipo de ventanas de la API de windows, y no hay una función especifica desde excel... hay que reprogramar la ventana utilizando las librerías API y la función Hwnd(). Es bastante complejo.
Espero haber sido de ayuda... no olvides finalizar y puntuar esta respuesta si consideras que esta finalizada.-
Hola:
Soy yo de nuevo, respecto a la POR del formulario ya quedo, lo que hice fue en rutina de terminate coloque la instrucción de bloqueo y ya quedo.
Respecto a la variable publica ya intente colocando Variant y colocando el dim as clave1 as string y todo lo que me comentaste y no quedo.
El código que tengo donde se valida el acceso de nuevo al formulario y desactivas las hojas protegidas es el siguiente:
dim clave1 as string
if clave1 = "arturo" then
load.principal
principal.show
else
msbox" error de clave", vbcritical "Error de clave"
end if
En realidad no logro que que se compare el valor de clave1 que es publica con "arturo" y así se continua con el desarrollo del programa
Te comento que al entrar a la hoja de excel me pide una clave que se digita en un textbox y que el contenido se asigna a clave1 la cual es publica.
help
He estado haciendo algunas pruebas, y a mi si que me ha funcionado como pública... pero te explico lo que he hecho:
Cree un formulario para petición de contraseña de inicio, y lo activé en el procedimiento "Autoexec()" (=el que se ejecuta automáticamente al entrar en Excel).
Después, en el modulo que he creado para control del formulario (User Module1), en el apertado de "General/Declaraciones", he puesto lo siguiente:
        Dim Clave1 as string
        Public Clave1
-Y a partir de ahí, no he tenido problemas para acceder a la Clave1 desde cualquier hoja, o incluso desde el formulario de validación...
Espero que esta ayuda te sirva algo mejor que la otra...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas