KEUDJ
XLDnaute Junior
Bonjour le Forum,
dans un classeur j`utilise cette macro pour savoir qui a modifie le fichier en dernier.
je souhaite ameliorer cette macro de sorte que l`enregistrement soit effectue uniquement si modif du classeur:
j`ai essaye ceci mais ca ne marche pas,
de plus le top serais de creer une copie du fichier si modif :
ajout de qq ligne
le fichier est bien renomer, mais a chaque fois excel me deamnde confirmation de l`enregistrement.
en resume, pouvez vous me donner un coup de pouce dans le but de:
--> si modif du classeur forcer l`enregistrement a la fermeture en ajoutant date et heure au nom de fichier, idem + username sur "status"
en vous remerciant d`avance pour votre aide
@+
dans un classeur j`utilise cette macro pour savoir qui a modifie le fichier en dernier.
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
user = Environ("username")
Sheets("status").Range("A1").Value = " Modified by: " & _
user & " on " & Format(Date, "dddd dd mmmm") & _
" at " & Format(Now, "hh:mm")
ActiveWorkbook.Save
End Sub
je souhaite ameliorer cette macro de sorte que l`enregistrement soit effectue uniquement si modif du classeur:
j`ai essaye ceci mais ca ne marche pas,
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
user = Environ("username")
If modif = True Then
Sheets("status").Range("A1").Value = " Modified by: " & _
user & " on " & Format(Date, "dddd dd mmmm") & _
" at " & Format(Now, "hh:mm")
ActiveWorkbook.Save
End If
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
modif = True
End Sub
de plus le top serais de creer une copie du fichier si modif :
ajout de qq ligne
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim nom As String
user = Environ("username")
nom = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 20) & "_" & Format(Date, "dd-mm-yyyy") & "_" & Format(Time, "hhmm") & ".xls"
'If modif = True Then
Sheets("status").Range("A1").Value = " Modified by: " & user & " on " & Format(Date, "dddd dd mmmm") & " at " & Format(Now, "hh:mm")
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & nom
'End If
End Sub
'Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'modif = True
'End Sub
le fichier est bien renomer, mais a chaque fois excel me deamnde confirmation de l`enregistrement.
en resume, pouvez vous me donner un coup de pouce dans le but de:
--> si modif du classeur forcer l`enregistrement a la fermeture en ajoutant date et heure au nom de fichier, idem + username sur "status"
en vous remerciant d`avance pour votre aide
@+