Ctrl+z ne fonctionne plus

Bonjour,

Depuis que j'utilise un fonction Vba qui me permet d'indiquer la date de la dernière modification apportée à un fichier excel, la fonction Ctrl+z ne marche plus.

Voici le code utilisé :

Dim modif As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)

If modif = True Then

Sheets("EN COURS").Range("A1").Value = "Dernière Révision le " & Format(Date, "dd/mm/yyyy")

End If

End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Application.EnableEvents = False

Sh.Range("A1").Value = "Dernière Révision le " & Format(Date, "dd/mm/yyyy") _

& " par " & Application.UserName

Application.EnableEvents = True

End Sub

Y a-t-il une solution pour que la fonction Ctrl+z remarche sans supprimer mon code ?

PS : je précise que je suis novice en Vba, je me suis contenté de copier/coller ce code trouvé sur internet.

Merci d'avance.

Bonjour,

Non, dès que tu écris sur une feuille en vba tu perds le tampon d'annulations. Pareil que si tu enregistres le fichier.

Garde-le en mémoire dans une variable que tu sauvegarde sur ta feuille à la fermeture ou bien écrit sur une autre feuille.

eric

Y a-t-il un autre moyen plus simple (via une formule par exemple) d'indiquer la date de la dernière modification ?

L'idée serait d'éviter de passer par du code vba, et donc éliminer mon problème.

Merci d'avance.

Bonjour,

Par formule non, aujourdhui() te donne la date du jour, ça change tous les jours...

Utilises les raccourcis clavier qui t'inscriront la date en dur : Ctrl+; pour la date

eric

Rebonjour,

Je viens de trouver un code en Vba qui me permet d'afficher la date de la dernière modification ainsi que le nom de celui qui l'a modifié (après enregistrement). Cette fois c'est compatible avec la fonction Ctrl+z. J'ai pensé que ça pouvait être utile à certain.

Voici le code :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Sheets("Feuill1").Range("B1") = Format(ActiveWorkbook.BuiltinDocumentProperties("Last Save Time"), "DD/MM/YY hh:mm") _

& " par " & Application.UserName

End Sub

Je ne suis pas spécialiste, peut-être que quelqu'un pourra nous dire pourquoi ce code fonctionne et pas le précédent.

Bonne journée.

Bonjour,

avec ce code tu n'écris pas dans la feuille par macro, tu ne perds donc pas son historique. Ca revient au même que d'écrire dans une feuille dédiée comme je te le suggérait.

eric

Rechercher des sujets similaires à "ctrl fonctionne"