- 'Créer un Module de classe Classe_close
-
-
- Public WithEvents App As Application
- 'App_WorkbookBeforeClose:
- Private Sub App_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
-
- 'Lorsque le classeur est fermé, il faut mettre à jour le tmp pour que le message d'info n'est pas lieu...
- '... d'être lors de la prochaine ouverture du document.
- If iAssupOk = 0 Then
- '
- Open "C:\TEMP\fichier.tmp" For Output As #2
- Write #2, ""
- End If
-
- '
- Close #2
- End Sub 'App_WorkbookBeforeClose
-
-
-
-
- 'Dans ThisWorkbook
-
- Public iAssupOk As Integer
- Dim App As New Classe_Close
-
- 'Workbook_Open:
- Private Sub Workbook_Open()
-
-
- 'Code qui va permettre de savoir si la feuille excel est déjà utilisée sur le réseau.
- '1 : A l'ouverture, Vérification de l'existance d'un tmp.... ( si il n'existe pas, la...
- ' ... feuille n'est pas ouverte sur le réseau (pas de message).
- '2 : Si le tmp existe et qu'un nom utilisateur y figure...
- ' ... on envoie un message comme quoi le fichier est ouvert, s'il n'y a pas de nom utilisateur...
- ' ... on écrit l'utilisateur en cours (pas de message).
- '3 : A la fermeture du classeur, on vire (à condition de na pas avoir eut le message d'avertissement),...
- ' ... le nom utilisateur.
- Set App.App = Application
-
- '
- '** Déclaration de variables.
- Dim sUser As String
- Set fsoObject = CreateObject("Scripting.FileSystemObject")
-
- 'Initialisation de variable.
- iAssupOk = 0
-
- 'Vérification de l'existance du tmp.
- If fsoObject.FileExists("C:\TEMP\fichier.tmp") Then
-
- 'Lecture de l'info utilisateur ds le tmp.
- Open "C:\TEMP\fichier.tmp" For Input As #2
- Line Input #2, sUser
- Close #2
- End If
-
- sUser = Replace(sUser, Chr(34), "")
- If sUser <> "" Then 'Il y a un utilisateur.... On avertit et on met à jour la variable pour ne pas écraser l'info.
- iAssupOk = 1
- sMessage = MsgBox("Feuille déjà ouverte par - " + sUser, vbInformation, "Amalthee Vers. 1.0")
- Else
-
- 'Le classeur n'est pas ouvert, mais il faut mettre à jour le tmp...
- '... au cas ou il serait amener à être ouvert par une autre personne (pour que cette dernière soit avertit).
- Open "C:\TEMP\fichier.tmp" For Output As #2
- Write #2, Application.UserName
- End If
-
- '
- Close #2
-
- End Sub 'Workbook_Open
-
-
-
-
'Créer un Module de classe Classe_close
Public WithEvents App As Application
'App_WorkbookBeforeClose:
Private Sub App_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
'Lorsque le classeur est fermé, il faut mettre à jour le tmp pour que le message d'info n'est pas lieu...
'... d'être lors de la prochaine ouverture du document.
If iAssupOk = 0 Then
'
Open "C:\TEMP\fichier.tmp" For Output As #2
Write #2, ""
End If
'
Close #2
End Sub 'App_WorkbookBeforeClose
'Dans ThisWorkbook
Public iAssupOk As Integer
Dim App As New Classe_Close
'Workbook_Open:
Private Sub Workbook_Open()
'Code qui va permettre de savoir si la feuille excel est déjà utilisée sur le réseau.
'1 : A l'ouverture, Vérification de l'existance d'un tmp.... ( si il n'existe pas, la...
' ... feuille n'est pas ouverte sur le réseau (pas de message).
'2 : Si le tmp existe et qu'un nom utilisateur y figure...
' ... on envoie un message comme quoi le fichier est ouvert, s'il n'y a pas de nom utilisateur...
' ... on écrit l'utilisateur en cours (pas de message).
'3 : A la fermeture du classeur, on vire (à condition de na pas avoir eut le message d'avertissement),...
' ... le nom utilisateur.
Set App.App = Application
'
'** Déclaration de variables.
Dim sUser As String
Set fsoObject = CreateObject("Scripting.FileSystemObject")
'Initialisation de variable.
iAssupOk = 0
'Vérification de l'existance du tmp.
If fsoObject.FileExists("C:\TEMP\fichier.tmp") Then
'Lecture de l'info utilisateur ds le tmp.
Open "C:\TEMP\fichier.tmp" For Input As #2
Line Input #2, sUser
Close #2
End If
sUser = Replace(sUser, Chr(34), "")
If sUser <> "" Then 'Il y a un utilisateur.... On avertit et on met à jour la variable pour ne pas écraser l'info.
iAssupOk = 1
sMessage = MsgBox("Feuille déjà ouverte par - " + sUser, vbInformation, "Amalthee Vers. 1.0")
Else
'Le classeur n'est pas ouvert, mais il faut mettre à jour le tmp...
'... au cas ou il serait amener à être ouvert par une autre personne (pour que cette dernière soit avertit).
Open "C:\TEMP\fichier.tmp" For Output As #2
Write #2, Application.UserName
End If
'
Close #2
End Sub 'Workbook_Open