Comment marche VBA
Résolu
jbg85
-
jbg85 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Comment marche VBA
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
5 réponses
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+.
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+.
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
Dim Modif As Boolean
en dehors de tes 2 fonctions, afin que la variable soit connue dans les 2 fonctions
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+.
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+.
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.
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.