Bonjour,
j’ai un fichier commandes basique sur lequel je dois en début de mois lancer un traitement. Je voudrais que le premier jour ouvré du mois il m’affiche un Popup (msgbox) “Ne pas oublier de Lancer le traitement des commandes”.
J’ouvre mon fichier que les jours ouvrés de la semaine. Donc si le premier jour du mois est un samedi ou dimanche je voudrais que le popup s’affiche le lundi suivant.
Exemple pour février 2020, le popup se serait affiché le lundi 3 février. Pour Mars le lundi 2 etc etc…
Je pense qu’il faut passer par un macro workthisbook
Private Sub Workbook_Open()
If Format(Date, “DD”) < 8 And Format(Date, “dddd”) = “lundi” Then
MsgBox (“Ne pas oublier de Lancer le traitement des commandes”)
End If
End Sub
Une autre précision dans ma proposition :
If Format(Date, “DD”) < 8 And Format(Date, “dddd”) <> “samedi” And Format(Date, “dddd”) <> “dimanche” Then
Le message apparaîtra tous les jours de la première semaine jusqu’au 7 inclus
Si tu souhaites le voir qu une fois il faut plutôt mettre ces lignes :
If Format(Date, “DD”) = 1 And Format(Date, “dddd”) <> “samedi” And Format(Date, “dddd”) <> “dimanche” Then
MsgBox (“Ne pas oublier de Lancer le traitement des commandes”)
End If
If Format(Date, “DD”) = 2 And Format(Date, “dddd”) = “lundi” Then
MsgBox (“Ne pas oublier de Lancer le traitement des commandes”)
End If
If Format(Date, “DD”) = 3 And Format(Date, “dddd”) = “lundi” Then
MsgBox (“Ne pas oublier de Lancer le traitement des commandes”)
End If
Ainsi pour tout jour du lundi au vendredi pour lequel c est le premier jour du mois le message sera donné et ce une seule fois de même pour le lundi 2 et le lundi 3 qui correspond au samedi ou dimanche premier du mois
Quand je regarde ta copie d’écran je m’aperçois que les doubles cote dans les lignes de code de If à End If sont différentes de celles que tu as dans la ligne de code Application.Workbook.Open…
Dans les lignes de code If à End If supprime chaque double cotes et retapes les au clavier (touche 3)
Celles en place sont penchés alors qu’elles doivent être droite et verticale
Certainement là ton soucis
N’oublies pas de consulter mes derniers messages pour mettre en place la bonne solution en fonction de tes attentes
Si le soucis persiste envoies moi ton fichier en enlevant toutes les données confidentielles
Bah écoutes j’ai pa pu attendre le 02 mars. J’ai changé les critères et le popup s’affiche nickel.ça fonctionne parfaitement.
Crois-tu possible(facilement) d’apposer des mises en forme au popup ?
ajouter une image JPEG ou PNG avant le texte
Titre du POPUP “Attention, Rappel”(à la place de Microsoft Excel)
couleur du popup rouge.
Ravi que cela fonctionne et te convienne
Attention toute fois la solution choisie pourra déclencher un message sur plusieurs jours hors mis le samedi et le dimanche jusqu au 7 du mois avec le critères que j ai paramétré (If Format(Date, “DD”) < 8 )
Si tu souhaites qu un seul jour ne déclenche le message il faut prendre ma dernière proposition en faisant attention au double côtés
Pour la mise en forme du popup on peut sans souci mettre un titre dans son cadre
Me dire lequel
On peut organiser le message avec des retours à la ligne
Quant à des images je ne pense que cela soit possible
Je regarderai sur internet pour confirmation
Donnes moi les évolutions que tu envisages
Un popup dans ce style
Contour popup rouge
Titre popup = “RAPPEL”
Image gyrophare dans popup
Texte sur 2 lignes
Mais te casses pas déjà j’ai tu m’as donné ce qu’il me faut. Là c’est juste de l’embellissement. Je vais également scruter la toile.
@+
MsgBox (“RAPPEL” & vbLf & vbLf & vbLf & “Début du mois.” & vbLf & vbLf & “Ne pas oublier de faire les formules de calcul dans l’onglet ‘Stats’”)
les vblf sont les retour chariot
Pour augmenter l’espace entre 2 lignes il suffit d’en rajouter
Pour la couleur et l’image je crains que cela ne soit pas faisable
A regarder sur le web l’instruction MsgBox
Un dernier détail sur mon code proposé seuls les jours fériés ne sont pas pris en considération
Si tu souhaites comme les samedi dimanche les exclures pas d’autre choix que de les lister dans une colonne et d’aller vérifier si la date traité y est présente
A toi de me dire
Bonjour
Dans ma dernière réponse je l ai signalé
“Un dernier détail sur mon code proposé seuls les jours fériés ne sont pas pris en considération
Si tu souhaites comme les samedi dimanche les exclures pas d’autre choix que de les lister dans une colonne et d’aller vérifier si la date traité y est présente
A toi de me dire”
D une manière générale tous les premiers du mois fériés ou les lundis 2 ou 3 fériés ne sont pas traités
Il suffirait de les lister dans une colonne que l on viendrait dans la procédure interroger et de valider le jour où le lendemain en fonction de sa présence ou non
Mais l utilisateur n en a pas tenu compte
Moi pour info, pour régler le soucis sans trop me prendre la tête, j’ai regardé le calendrier 2020 et dans la macro VB j’ai mis la variable “If Format(Date, “DD”) < 5”. ça fonctionnera pour tous les mois de l’année. Après on peut aussi mettre à 6,7,8 etc… mais dans ce cas, le popup continuera d’apparaitre tant que le jour du mois sera inférieur à 6,7,8 etc.
Ce choix effectivement est très judicieux et même s’il il ne permet pas de cibler de manière unique le seul jour approprié du mois avec le risque de 5 jours mis à contribution il permet de manière simple de répondre à la objectif attendu et ce en s affranchisant de la problématique des jours fériés quelque soit le année
Bonne solution donc
Et oui, il peut y avoir des RTT ou jours de maladie aussi ! Difficile de vraiment faire le tour de la question. Sauf peut-être de limiter les cas inopinés ou d’interrompre le rappel volontairement.