Re : Visibilité d'une variable entre 2 classeurs
Bonjour.
Dans mes recherches, j'ai egalement trouvé ceci :
(Solution non retenue car à mon sens un peu complexe pour simplement récuperer le contenu d'une variable)
On peut aussi utliser des API Windows
Option Explicit
Declare Function SetEnvironmentVariable Lib "kernel32" Alias _
"SetEnvironmentVariableA" (ByVal lpName As String, _
ByVal lpValue As String) As Long
Declare Function GetEnvironmentVariable Lib "kernel32" Alias _
"GetEnvironmentVariableA" (ByVal lpName As String, _
.ByVal lpBuffer As String, ByVal nSize As Long) As Long
'*********************************************************
Sub AutoOpen()
Dim EnvVarName As String
Dim ValVar As String
Dim x
Dim lpbuf As String
Dim lsize As Long
'le nom de variable utilise est le Hwnd de l'application Excel (quand excel sera fermé, cette variable sera automatiquement détruite)
EnvVarName = CStr(Application.Hwnd)
pbuf = Space$(256)
lsize = 256
x = GetEnvironmentVariable(EnvVarName, lpbuf, lsize)
ValVar = Left$(lpbuf, x)
If ValVar = "1" Then
'si la variable d'environnement est renseignée à "1" c'est qu'un fichier est déjà ouvert.
'on peut alors décider de fermer le fichier en cours d'ouverture
MsgBox "Un fichier est déjà ouvert"
ActiveWorkbook.Close False
End
Else
'la variable d'environnement étant vide on lui affecte sa valeur "1"
x = SetEnvironmentVariable(EnvVarName, "1" )
End If
End Sub
'***************************************************
Sub AutoClose()
Dim EnvVarName As String
Dim x
'le nom de variable utilise est le Hwnd de l'application Excel (quand excel sera fermé, cette variable sera automatiquement détruite)
EnvVarName = CStr(Application.Hwnd)
'on vide la variable d'environnement à la fermeture du fichier
x = SetEnvironmentVariable(EnvVarName, "" )
End Sub
_________________________________
source :
Ce lien n'existe plus
Cordialement