Affichage d'un msg à la 1ère ouverture d'un fichier chaque nouvelle année

re bonjour

ce fichier est transmis à tous les chefs les d'équipe et chef de services et donc chacun l'aura sur son propre PC;

j'aimerai faire afficher automatiquement une alerte / un message à chaque 1er lancement de chaque nouvelle année

par ex, dès lors que l'on sera en 2019, si le Responsable Commerce ouvre le fichier seulement le 20 Février pour la 1ère fois de l'année, le msg apparaitra

pouvez-vous m'aider ?

merci bcp par avance

Bonjour Xavier,

J'ai placé la macro "JourdelAn" dans le module1.

À la fin de la macro "Workbook_Open", j'ai ajouté "call modul1.JourdelAn".

Les feuilles étant protégées, j'ai ajouté une feuille "Annee" qui est masquée.

En "A1" de la feuille "Annee", j'ai inscrit 2017 pour imiter le changement d'année.

À la première ouverture, le message s'affiche, puis inscrit en "A1" l'année en cours pour ne plus avoir de message aux ouvertures subséquentes.

Voir si ça convient...

ric

c'est top, pile poile ce que je souhaitai .....

en fait l'année à modifier chaque année, ce trouve en cellule D2 de l'onglet "instruction". je vais adapter ton code pour que ça marche

en revanche question "con" car je bidouille le VBA, pourquoi avoir écrit ce code dans un module et non sur une feuille ou encore en thisworkbook ?

Bonjour,

Il n'y a pas de raison autre que j'ai pris l'habitude ne pas charger "ThisWorkbook" inutilement.

Des modules, on peut en ajouter tant que l'on veut.

On peut même les renommer selon le thème d'exécution du code présent.

Exemple : "Module1" aurait pu être renommé "MessageChangementAnnee".

ric

j'ai changé du coup le nom de l'onget, le msg, et la cellule D2 . j'ai modifié la date en D2 pour mettre 2016 par exemple, j'enregistre puis ferme le fichier, à l'ouverture je n'ai pas le msg

il doit y avoir un hic dans mes chiffres pour .Cells(1, 1) initialement dans ton fichier

Sub JourdelAn()

If Worksheets("Instructions").Cells(4, 2) <> Year(Now) Then

MsgBox " Ne pas oublier de changer l'année sur l'onglet Instructions pour les HS de la nouvelle année"

Worksheets("Instructions").Cells(4, 2) = Year(Now)

End If

End Sub

Sub JourdelAn()

If Worksheets("Instructions").Cells(2, 4) <> Year(Now) Then

MsgBox " Ne pas oublier de changer l'année sur l'onglet Instructions pour les HS de la nouvelle année"

Worksheets("Instructions").Cells(2, 4) = Year(Now)

End If

End Sub

Bonjour,

Pour cells(2, 4) c'est cells (ligne , colonne).

On peut écrire aussi cells(2, "D")

Si tu as déplacé la macro dans ThisWorkbook, à la fin de "Workbook_Open", il faut changer :

"call Module1.JourdelAn" pour "call JourdelAn", sinon le code cherche la macro au mauvais endroit.

J'ai reproduis tes modifs et ça fonctionne ici.

ric

Bonjour

voir le mots de passe de la feuille

Sub JourdelAn()
    If Feuil1.Cells(2, 2) <> Year(Now) Then
        MsgBox " Ne pas oublier de changer l'ann?e sur l'onglet Instructions pour les HS de la nouvelle ann?e"
'    enleve le mots de passe
'        Feuil1.Cells(2, 2) = Year(Now)
'    remettre le mots de passe
    End If
End Sub

A+

Maurice

Bonjour à tous, bonjour archer,

La cellule (D2) utilisée par Xavier en feuille "Instructions" est une cellule déprotégée.

ric

bonjour

oui ric tu a raison

le problème ses qui l aime pas cells

ca marche avec range

Sub JourdelAn()
    If Feuil1.Range("D2").Value <> Year(Now) Then
        MsgBox " Ne pas oublier de changer l'ann?e sur l'onglet Instructions pour les HS de la nouvelle ann?e"
        Feuil1.Range("D2").Value = Year(Now)
    End If
End Sub

A+

Maurice

Bonjour,

j'ai ajouté une feuille "Annee" qui est masquée.

Pour éviter la gymnastique avec cette feuille, la valeur peut aussi être mise dans un nom.

Qui lui même peut être masqué avec nom.visible=false pour ne pas qu'il apparaisse dans le gestionnaire.

ThisWorkbook.Names.Add "sav_annee", 2018
ThisWorkbook.Names("sav_annee").Visible = False
Debug.Print [sav_annee]

eric

Bonjour à tous

Xavier,

je veux pas te fâcher, mais on voit que tu ne connais pas Excel. D'ailleurs personne ne connaît Excel, même pas les gens de Crosoft

tu imites ce qui se faisait il y a 30 ans sur feuille papier

et donc tu as des soucis

1/

ton message de début d'année, à quoi sert-il en réalité ?

ne vaut-il pas mieux que chacun fasse son job, le service paye lit le fichier en fin de chaque semaine ou mois. Point.

important :que le salarié signe ses heures, un enregistrement informatique sans approbation formelle de sa part n'a aucune valeur juridique (et des problèmes juridiques en ce domaine... )

2/

si tu fais de l'Excel, tu pourras faire des TCD d'un clic pour des bilans par mois, année, salariés, semaine (oui, en automatique)

le tout sans VBA et sans formule non plus !

Excel je te dis

???

Pour autant que je me souvienne, mes feuilles de papiers d'il y a 30 ans ne me faisaient pas de rappels

Au delà de la stucture de son fichier je me demande pourquoi les consignes ne sont pas de repartir d'un classeur modèle vierge chaque année tout simplement.

eric

???

Pour autant que je me souvienne, mes feuilles de papiers d'il y a 30 ans ne me faisaient pas de rappels

Au delà de la stucture de son fichier je me demande pourquoi les consignes ne sont pas de repartir d'un classeur modèle vierge chaque année tout simplement.

eric

arf !

eriiic, là je suis en complet désaccord

on ne fait pas du tout comme avec des cahiers ou classeurs à levier : sur Excel et en informatique plus généralement, on reste sans interruption sur 1 feuille unique

durant des dizaines d'années

par contre, le papier ne faisait pas de rappel ? en es-tu certain ? moi, il y a 15 ans, j'avais encore des instructions d'emploi collées en tête de cahiers de compta ou liste du personnel ou liste des OF etc.

si on veut faire similaire, on tape un texte dans un onglet "mode d'emploi", qu'on fait lire aux gens lors de leur 1er jour à leur poste de travail. Charge à eux de le respecter.

Sur la route, on ne met pas de fenêtre pop-up sur les feux tricolores pour expliquer comment les respecter.

bonjour à tous

merci pour vos solutions et vais voir laquelle me convient le mieux ....

@jmd : le but de ce fichier n'est pas d'exploiter les données sociales dont les heures supplémentaires. chaque chef d'équipe et chef de service doit recenser les HS faites par leurs collaborateurs et les transmettre au service paie pour règlements. donc le msg à l'ouverture d'excel en cas de changement d'année, est pour leur rappeler que pour déclarer les heures de Janvier 2019, avec les semaines & jours féries correctement placés, ils doivent IMPÉRATIVEMENT changer la date sur la feuille instruction

re

pourquoi changer une date ?

faire simple : un calendrier sans fin, sans mise à zéro en fin d'année (les fiches papier obligeaient à cette gymnastique, l'informatique s'en passe très bien)

Bonjour,

arf !

eriiic, là je suis en complet désaccord

on ne fait pas du tout comme avec des cahiers ou classeurs à levier : sur Excel et en informatique plus généralement, on reste sans interruption sur 1 feuille unique

durant des dizaines d'années

En complet désaccord avec qui ??? Ai-je dit cela ? Redescend un peu...

eric

re

tu as écrit :

je me demande pourquoi les consignes ne sont pas de repartir d'un classeur modèle vierge chaque année

et je répondais que justement il ne faut PAS repartir d'un modèle vierge chaque année

d'où mon "désaccord"

quelle est maintenant ta préconisation ?

dans nos process, les chefs d'équipe & de service ont 3 mois pour nous transmettre les HS de leurs collaborateurs, donc si nous sommes physiquement le 16 Janvier 2019, je peux encore avoir des HS de Novembre à payer d'ou l’intérêt de pouvoir modifier la date de référence pour que le calendrier du mois soit correct

re

Xavier,

je pense qu'on a tous compris ta question

ma réponse de moi perso à moi : ne pas interrompre le fichier en fin d'année, poursuivre sur le même. Les dates suivront.

et je répondais que justement il ne faut PAS repartir d'un modèle vierge chaque année

d'où mon "désaccord"

Sors de ta posture un petit peu, tout dépend du besoin.

Si je n'ai besoin que des données de l'années et qu'un classeur annuel me va bien, je fais un classeur annuel.

RAF des chiffres de l'année dernière, et encore plus de tous ceux depuis 1972 par exemple.

Et si j'en ai besoin pour x raisons et bien je fais un classeur unique, oui.

Rechercher des sujets similaires à "affichage msg 1ere ouverture fichier chaque nouvelle annee"