Visual Basic para Aplicaciones - Módulo ThisWorkBook

Life is soft - evento anual de software empresarial
 
Vista:

Módulo ThisWorkBook

Publicado por Pablo (77 intervenciones) el 03/10/2018 08:55:07
He realizado una pequeña aplicación en excel para soportar un proceso de aprobaciones.

Para evitar el manejo de claves de usuario y passwords, lo que hago es leer el usuario de Windows que abre el documento.

Si le está permitido abrirlo lo abre, y si no le está le sale un mensaje y el archivo se cierra.

El problema es que en una hoja del libro tengo una tabla en una hoja protegida que me dice quién tiene que aprobar en cada paso, por lo que tomo el nombre del usuario del sistema, lo comparo con la tabla y si es él, abre el documento.

Mi pregunta es la siguiente: ¿El evento Open del módulo ThisWorkBook puede leer el resultado de una fórmula en una hoja oculta o esta fórmula no se ha ejecutado todavía?.

Porque hay veces que me funciona y veces que no.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Módulo ThisWorkBook

Publicado por Antoni Masana (498 intervenciones) el 04/10/2018 08:32:23
Buena pregunta.

Puedes probar a ejecutar un Calculate y un DoEvents así a secas antes de ir a buscar en las hoja.
De esta forma fuerzas al Excel a que evalúe todas las fórmulas.
El segundo comando es por si acaso, en realidad no se si es necesario.

1
2
3
4
5
6
7
8
Option Explicit
 
Private Sub Workbook_Open()
    ...
    Calculate
    DoEvents
    ...
End Sub

En teoría funciona a la práctica con Microsoft ni se sabe.

Saludos.
\\//_

P.D.: Si te funciona comentalo para que lo sepamos. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Módulo ThisWorkBook

Publicado por Pablo (77 intervenciones) el 07/10/2018 22:03:45
Muchas gracias por tu comentario.

He comprobado que si tengo una rango con nombre, puedo buscar en su contenido con un vlookup.

Lo que voy a hacer es poner una función Buscarv en una celda y leerla desde ThisWorkbook a ver qué dice.

Los caminos de Microsoft son infinitos. Luego están los usuarios, que tela.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar