Comment marche VBA

Résolu
jbg85 -  
jbg85 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Comment fait-on pour que dans une cellule d'excel s'affiche la date de modification du classeur. J'ai vu qu'il fallait mettre ce programme dans this workbook:
Dim modif As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If modif = True Then
Sheets("Feuil1").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)
modif = True
End Sub

Mais comment on fait dans VBA et comment ensuite on fait pour que ça marche dans le classeur.

Merci par avance

5 réponses

amigo
 
Bonjour,

La date qui est ecrite en A1 est la date de dernière utilisation, et non la date de dernière modification, c'est à dire que même si tu ne fais aucune modification, le simple fait d'ouvrir le tableau met à jour la date si tu enregistre avant de quitter.

Tu n'as pas besoin de faire une macro pour ça, une simple formule en A1 suffit: =AUJOURDHUI()

Par contre, tu peut améliorer le code de la macro avec cette logique:
Si modifications enregistrées alors mettre a jour la date et quitter, sinon quitter sans enregister.

Je ne sais pas si je me suis fait comprendre.

A+.
0
jbg85 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Mais comment on fait pour mettre dans une cellule de ma feuille la date de modification de la feuille.
Je m'explique, quand j'ouvre et je ferme la feuille ou le classeur je ne veux pas que la date change. Je veux que la date change juste quand je fais une modification dans mon tableau.
Merci par avance.
0
zavenger Messages postés 811 Date d'inscription   Statut Membre Dernière intervention   161 > jbg85 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
a partir du moment ou tu n'auras pas sauvegardé ton classeur, la cellule ne sera pas modifiée ...
0
zavenger Messages postés 811 Date d'inscription   Statut Membre Dernière intervention   161
 
cela marchera mieux si tu ajoutes

Dim Modif As Boolean

en dehors de tes 2 fonctions, afin que la variable soit connue dans les 2 fonctions
0
amigo
 
RE,

Cette procédure dans le code de ThisWorkBook devrait faire ce que tu souhaite
Chaque fois que tu fais une modif dans une feuille, la cellule A1 de la feuille modifiée est mise à jour.

A+.
0
amigo
 
j'ai oublié la procédure

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
ActiveSheet.Range("a1").Value = "Dernière Révision le " & Format(Date, "dd/mm/yyyy")
End Sub
0
jbg85 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
mais où met on cette procédure et comment on fait pour que ça marche?
Je suis un novis avec VBA
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
amigo
 
Voilà ce qu'il faut faire:

Dans le menu outils -> Macros -> Visual Basic Editor
ou bien appuye sur la touche Alt et la touche F11

Sur le coté gauche, clic droit dur ThisWorkBook et selectionnes Code

Dans l'éditeur tu colle la procédure

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
ActiveSheet.Range("a1").Value = "Dernière Révision le " & Format(Date, "dd/mm/yyyy")
End Sub

Tu retournes dans ta feuille Excel et modifies une cellule, la cellule A1 est mise à jour.
Choisis une autre feuille, fais une modif et la cellule A1 est mise à jour.

C'est tout.
0
jbg85 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
merci
0