Macro incrémentation de la date du jour

Bonjour,

J'aimerai avoir une macro qui quand j'effectue une modification de mon fichier excel, me met la date du jour dans la cellule D7.

Merci de votre aide

Bonjour azerty41 et

Merci de bien vouloir compléter votre profil avec la version Excel utilisée.

Sinon, il faut utiliser l'évènement change de la feuille en question

Cordialement.

Bonjour Azerty

Voici le code

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Mouchard
End Sub
Sub Mouchard()
    Application.EnableEvents = False
    Range("MOUCHARD") = Now
    Application.EnableEvents = True
End Sub

Les explications :
Workbook_SheetChange permet de détecter les mises à jour dans toutes les feuilles.
Application.EnableEvents permet de désactiver/activer la détection des événements. Sinon ici, la mise à jour de la date, va déclencher Workbook_SheetChange qui va produire une mise à jour de la date qui va déclencher Workbook_SheetChange, etc...
Nommer D4 MOUCHARD, ce qui vous évitera de retouche au code si vous décidez de changer de cellule.

Je suis novice en VBA, et je n'arrive pas a faire fonctionner votre code. A quel moment dois-je mettre D7 exactement ?

Re,

Voici un exemple (plus simple), saisir des valeurs dans les cellules des colonnes A à C

8azerty41-test.zip (15.80 Ko)

A+

voir le fichier ci-joint

8mouchard.xlsm (14.98 Ko)

Je viens de voir que c'était en D7 que vous souhaitiez avoir l'info. Mais çà ne change rien au principe.
Pour changer la cellule avec le nom MOUCHARD : Dans le Menu -> Formules -> Gestionnaire des noms ...

Merci CLR pour l'explication avec le fichier. Par contre comment faire pour changer l'emplacement de la cellule qui contient la macro ? De D4 en B10 par exemple ?

Comme je l'ai signalé dans ma dernière réponse

Pour changer la cellule avec le nom MOUCHARD : Dans le Menu -> Formules -> Gestionnaire des noms ...

image

Merci beaucoup, ça fonctionne impeccable. J'aimerai faire une variante cette fois et mettre à jour la date quand j'enregistre le fichier, est-ce possible ?

Voici le nouveau code pour votre variante :

Dans le WorkBook

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If MAJ Then Mouchard
End Sub

Private Sub Workbook_Open()
    MAJ = False
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    'ici on détecte les mises à jour dans les cellules de toutes les feuilles
    'Mouchard 'Appel de la macro (mis en commentaire pour la variante "sur Enregistrer"
    MAJ = True
End Sub

Dans le Module

Public MAJ As Boolean
Sub Mouchard()
    Application.EnableEvents = False ' on désactive les événements
    Range("MOUCHARD") = Now ' La cellule nommé MOUCHARD (dans le fichier c'est D4 de la feuille 1
    Application.EnableEvents = True ' on réactive les événements
End Sub

Je vous invite à consulter le Cours VBA à la rubrique Evénements mais pas seulement, pour vous familiariser avec le Code VBA où comme vous pouvez le constater sur le code pour la variante, il n'y a rien de vraiment sorcier.

bonjour le fil,

on peut gérer tout avec une macro "Mouchard"

Sub Mouchard(N° As Integer, Optional shName, Optional cAddress)
     Application.EnableEvents = False        ' on désactive les événements
     Select Case N°
          Case 1: Range("MOUCHARD").Resize(, 4).Value = Array(Now, "modifier", shName, cAddress)     ' ces 4 cellules quand on modifie quelque chose
          Case 2: Range("MOUCHARD").Offset(1).Resize(, 2).Value = Array(Now, "Sauvegardé")     ' Ligne suivante quand on sauvegarde
          Case 3: Range("MOUCHARD").Offset(2).Resize(, 2).Value = Array(Now, "Fermé")     ' encore une ligne suivante quand on ferme le fichier
     End Select
     Application.EnableEvents = True         ' on réactive les événements
End Sub
5mouchard.xlsm (23.05 Ko)

Bonjour Bart,

Comme l'a écrit Azerty, il est novice en VBA.
Je pense que dans le cas d'un débutant, il ne faut peut-être pas aller trop loin, dès lors qu'il n'y a pas de demande en ce sens.
La solution proposée doit être la plus simple possible (ce n'est pas toujours possible) pour être comprise et éventuellement reproduite. On peut ne pas être d'accord

bonjour,

vous avez raison et je suis d'accord.

Bonjour,

Merci beaucoup pour votre aide, tout fonctionne parfaitement !

Rechercher des sujets similaires à "macro incrementation date jour"