1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| Function verrouillage(ByVal ligne As String) As Boolean
Dim CheminVerrou As String
Dim fs As Scripting.FileSystemObject
Dim UtilisateurActuel As Boolean
Set fs = CreateObject("Scripting.FileSystemObject")
Set dossiersource = fs.GetFolder("V:\SEB - Test Télétravail\verrou\")
For Each fichier In dossiersource.Files
If Left(fichier.Name, Len(ligne)) = ligne Then
If InStr(1, fichier.Name, Application.UserName) = 0 Then
UtilisateurActuel = False
MsgBox "cette ligne est vérouillée par " & Mid(fichier.Name, Len(ligne) + 2, InStr(Len(ligne) + 2, fichier.Name, "-") - Len(ligne) - 2)
verrouillage = True
Exit For
Else
UtilisateurActuel = True
End If
Else
verrouillage = False
End If
If InStr(1, fichier.Name, Application.UserName) Then
On Error GoTo errorHandler
Kill dossiersource & "\" & fichier.Name
On Error GoTo 0
End If
Next fichier
If verrouillage = False Then
Set a = fs.CreateTextFile("V:\SEB - Test Télétravail\verrou\" & ActiveCell.Row & "-" & Application.UserName & "-" & Replace(Date, "/", ".") & "-" & Replace(TimeValue(Now), ":", "."), True)
If UtilisateurActuel = False Then MsgBox "ligne libre!!"
Else
Application.EnableEvents = False
ActiveCell.Offset(1, 0).Select
Application.EnableEvents = True
Set a = fs.CreateTextFile("V:\SEB - Test Télétravail\verrou\" & ActiveCell.Row & "-" & Application.UserName & "-" & Replace(Date, "/", ".") & "-" & Replace(TimeValue(Now), ":", "."), True)
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Exit Function
errorHandler:
a.Close
Resume
End Function |
Partager