Compteur zéro

sten83

XLDnaute Occasionnel
Bonjour, j'ai beau regarder sur le net et dans les post je n'arrive pas a trouver ce que je cherche.
J'ai deux cellules L5,L6 avec des nombre qui s’incrémentent automatiquement.
Ce que je voudrais c'est que les cellules soient remise a zéro a chaque début de nouvelle année.
Merci pour votre aide.
 

CBernardT

XLDnaute Barbatruc
Re : Compteur zéro

Bonjour sten83, Jacou et le forum,

Pour activer ou désactiver automatiquement une action dans l'application Excel, il faut mettre en place une procédure dans le module objet ThisWorkBook qui se déclenchera lorsqu’un évènement prédéfini surviendra.
Les procédures évènementielles du module objet Thisworkbook peuvent prendre en compte : le classeur (Workbook), la collection de feuille dans le classeur (Workbook_Sheet), la fenêtre contenant le classeur (Workbook_Window).

Private Sub Workbook_Open() permet de déclencher une procédure à l’ouverture du classeur.
Concernant ton projet, tu souhaites qu’à la première ouverture du classeur en début d’année les valeurs des cellules L5 et L6 de la feuille « Feuil1 » soient remise à zéro.
Début d’année est une période qui peut s’étendre sans fin ! Il faut donc connaître l’année de la dernière ouverture du classeur pour la comparer avec l’année de l’ouverture en cours et vérifier si son millésime est supérieur pour déclencher la procédure qui réalise la mise à zéro des cellules.

Dans le classeur joint, le millésime de l’année en cours est mis en mémoire dans la case A1 de la feuille masquée Paramètres. Cette cellule est nommée "AnDernier" dans le gestionnaire des noms.

Si, à l’ouverture du classeur, le millésime de l’année en cours est supérieur à la valeur de la cellule "AnDernier", c’est qu’il y a eu changement d’année depuis la dernière ouverture du classeur et que c’est la première ouverture depuis la fin de l’année enregistrée. Cet évènement déclenche automatiquement la procédure de mise à zéro des cellules L5 et L6 ainsi que l’enregistrement du millésime de l'année en cours dans la feuille paramètres afin d’éviter que le déclenchement ne se reproduise à chaque nouvelle ouverture.

La procédure installée dans le classeur joint :
Private Sub Workbook_Open()
If Year(Date) > Range("AnDernier").Value Then
Sheets("Feuil1").Range("L5") = 0
Sheets("Feuil1").Range("L6") = 0
Range("AnDernier").Value = Year(Date)
End If
End Sub
 

Pièces jointes

  • Test-MAZ.xlsm
    20.9 KB · Affichages: 22

CBernardT

XLDnaute Barbatruc
Re : Compteur zéro

Une autre solution qui ne nécessite plus l’enregistrement préalable de millésime.

Il est possible d’obtenir la collection des propriétés du document intégrées dans le classeur avec Workbook.BuiltinDocumentProperties.

Pour le projet, c'est l’obtention de la date du dernier enregistrement qui est intéressant avec ActiveWorkbook.BuiltinDocumentProperties("Last save time" )

La procédure évènementielle devient :
Private Sub Workbook_Open()
If Year(Date) > Year(ActiveWorkbook.BuiltinDocumentProperties("Last save time")) Then
Sheets("Feuil1").Range("L5") = 0
Sheets("Feuil1").Range("L6") = 0
End If
End Sub

Ce lien n'existe plus
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
321

Statistiques des forums

Discussions
312 571
Messages
2 089 809
Membres
104 278
dernier inscrit
LENZY