Option Explicit
Private Sub Workbook_Open()
Sheets("Liste personnes").Select
Call nettoyage
'Macro créant un fichier texte à l'ouverture du classeur partagé (Dropbox) pour indiquer à d'autres utilisateur que celui-ci est ouvert.
'La première partie vérifie si le fichier texte n'existe pas déjà au cas où l'utilisateur n'aurait pas fait attention.
'Définition des variables
Dim Emplacement, Nom As String
Emplacement = ThisWorkbook.Path & "\" 'Emplacement de ce classeur
Nom = "Le fichier des anciens est deja ouvert.txt" 'Nom du fichier texte créé
'Vérification
If Emplacement & Nom <> "" And Len(Dir(Emplacement & Nom)) > 0 Then
MsgBox "Attention, ce classeur semble être ouvert par un autre utilisateur." & Chr(13) & Chr(10) & Chr(13) & Chr(10) & _
"Continuer de travailler et enregistrer ce fichier créera certainement un fichier en conflit.", vbExclamation, "Attention"
Exit Sub
End If
'Création du fichier texte
Open Emplacement & Nom For Output As #1
Print #1, "Le fichier " & ThisWorkbook.Name & " est ouvert par un utilisateur !" 'On y écrit un texte d'information (optionnel)
Close #1 'On ferme le fichier texte créé
' second test, celui du repertoire extraction pour verifier qu'il soit vide
Dim presence_fichiers, test As String
Dim nombr As Integer
presence_fichiers = "C:\Dropbox\- Comité des anciens\extractions (à nettoyer)\*.*"
test = "Mauvais"
Do While test = "Mauvais"
If Len(presence_fichiers) > 0 And Len(Dir(presence_fichiers, vbHidden)) > 0 Then
MsgBox "Attention le répertoire des extractions n'est pas vide !" & (Chr(10)) & "Je vais ouvrir le répertoire pour vous permettre de le vider", vbOKOnly
Shell Environ("WINDIR") & "\explorer.exe " & "C:\Dropbox\- Comité des anciens\extractions (à nettoyer)\", vbNormalFocus
' mise en route timer pour attendre les manips
'RunTime = Now + TimeValue(Format(Int(TimerDurationInSeconds / 3600), "00") & ":" & _
' Format(Int((TimerDurationInSeconds - Int(TimerDurationInSeconds / 3600) * 3600) / 60), "00") & ":" & _
' Format(TimerDurationInSeconds Mod 60, "00"))
Else
test = "Bon"
MsgBox "Merci le répertoire des extractions est actuellement vide ;-))" & (Chr(10)) & "vous pouvez continuer sans risques, merci", vbOKOnly
'Application.OnTime EarliestTime:=RunTime, Procedure:="RunTimer", Schedule:=True
End If
Loop
End Sub