XL 2016 macro en fonction du jour de la semaine

CYRIL CAMPAS

XLDnaute Junior
Bonjour chers XLnautes !

dans la continuité de ma dernière problématique, je rencontre un nouvel os, mais je pense que pour les personnes expérimentées c'est easy !

je tiens à remercier une nouvelle fois @sylvanu pour son aide plus que précieuse sur mon dernier fichier.

Voici ma problématique :

en fin de réunion, nous nous posons des questions, les réponses sont soit oui soit non. je souhaite traiter cela par MsgBox, et j'aimerai que ca remplisse les cellules en fonction du jour de la semaine.

je sais mettre en place les msgbox mais je n'arrive pas à inclure la condition du jour de la semaine. voici un screenshot de ce que je cherche à remplir

1633679706170.png
1633679706170.png l'idée est de remplir en fonction du jour de la semaine défini en M3.

merci pour votre aide les amis XLnautes.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Il ne s'agit pas de joindre la totalité de votre fichier mais d'un fichier anonymisé et épuré au stricte nécessaire pour comprendre et agir sur la situation.

Peu d'intervenant (dont moi) vont ouvrir un fichier sur un lien externe, vous en connaîtrez certaines raisons en relisant la charte du forum.

Cordialement
 

CYRIL CAMPAS

XLDnaute Junior
Re,

Il ne s'agit pas de joindre la totalité de votre fichier mais d'un fichier anonymisé et épuré au stricte nécessaire pour comprendre et agir sur la situation.

Peu d'intervenant (dont moi) vont ouvrir un fichier sur un lien externe, vous en connaîtrez certaines raisons en relisant la charte du forum.

Cordialement
bonjour Hasco, je comprends parfaitement, je vais donc joindre un bout de fichier épuré, nous sommes vendredi je n'arrive plus à réfléchir correctement ;-)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Cyril, Hasco,
Si c'est pour répondre par Oui ou par Non, ne serait il pas plus simple de mettre dans le tableau des listes déroulantes Oui/Non ?
Sinon en VBA le N° du jour est :
VB:
NoJour = Weekday(TODAY, 2)
Avec 1 pour lundi, et 7 pour dimanche. Ensuite il suffit de ranger à la bonne colonne en faisant un offset pour sauter les premières colonnes.
 

CYRIL CAMPAS

XLDnaute Junior
Bonjour Sylvanu,

alors effectivement la liste déroulante est la solution très facile, mais je voulais un truc plus classe !

arrives tu à me préciser ton code pour remplir mes colonnes ?

genre :

si Lundi alors :

je pose ma question n°1 en msg box, si vbyes alors "OUI" en "R5" par exemple sinon "NON"

je pose ma question n°2 en msg box, même topo....

Je ne sais pas comment gérer la macro en fonction du jour...

merci d'avance
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Un essai en PJ :
VB:
Sub Questions()
Dim DL%, Nojour%, Colonne%, Titre$, Question$, Réponse%
DL = Range("A65500").End(xlUp).Row
    Nojour = Weekday(TODAY, 2)  ' pour le test mettre NoJour=1 pour le lundi jusqu'à 5 pour le vendredi
    If Nojour > 5 Then Exit Sub ' car samedi ou dimanche
    Colonne = Nojour + 7        ' car lundi en colonne 8 (H)
For Ligne = 7 To DL
    Titre = Format(Now, "dddd dd mmmm yyyy") & " - Question " & Ligne - 6 & " sur " & DL - 6
    Question = Cells(Ligne, "A")
    Réponse = MsgBox(Question, 32 + 3, Titre) ' https://www.excel-pratique.com/fr/vba/boites_de_dialogue
    Select Case Réponse
        Case 6 ' Oui
            Cells(Ligne, Colonne) = "OUI"
        Case 7 ' Non
            Cells(Ligne, Colonne) = "NON"
    End Select
Next Ligne
End Sub
ligne à modifier pour test :
Nojour = Weekday(TODAY, 2) ' pour le test mettre NoJour=1 pour le lundi jusqu'à 5 pour le vendredi
car pas de prise en compte le week end.
 

Pièces jointes

  • DOR Condi V5 health-check XLD (1).xlsm
    649.8 KB · Affichages: 3

CYRIL CAMPAS

XLDnaute Junior
Re,
Un essai en PJ :
VB:
Sub Questions()
Dim DL%, Nojour%, Colonne%, Titre$, Question$, Réponse%
DL = Range("A65500").End(xlUp).Row
    Nojour = Weekday(TODAY, 2)  ' pour le test mettre NoJour=1 pour le lundi jusqu'à 5 pour le vendredi
    If Nojour > 5 Then Exit Sub ' car samedi ou dimanche
    Colonne = Nojour + 7        ' car lundi en colonne 8 (H)
For Ligne = 7 To DL
    Titre = Format(Now, "dddd dd mmmm yyyy") & " - Question " & Ligne - 6 & " sur " & DL - 6
    Question = Cells(Ligne, "A")
    Réponse = MsgBox(Question, 32 + 3, Titre) ' https://www.excel-pratique.com/fr/vba/boites_de_dialogue
    Select Case Réponse
        Case 6 ' Oui
            Cells(Ligne, Colonne) = "OUI"
        Case 7 ' Non
            Cells(Ligne, Colonne) = "NON"
    End Select
Next Ligne
End Sub
ligne à modifier pour test :
Nojour = Weekday(TODAY, 2) ' pour le test mettre NoJour=1 pour le lundi jusqu'à 5 pour le vendredi
car pas de prise en compte le week end.
merci pour ton retour, j'ai essayé ton fichier mais il ne se passe rien en cliquant sur le bouton de la macro !
 

CYRIL CAMPAS

XLDnaute Junior
ça fonctionne au top ! par contre je ne peux pas tester pour un autre jour pour voir ? j'ai peur d'abimer quelque chose...
j'essaie de comprendre ton code mais il y a des choses qui m'échappent, je dois creuser!
je suis réellement loin de ton niveau, je suis admiratif !
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
C'est prévu. Vous remplacez Nojour = Weekday(TODAY, 2) par Nojour =1 ce sera le lundi... jusqu'à Nojour =5 pour le vendredi. 6 et 7 sont ignorés car le WE.
ligne à modifier pour test :
Nojour = Weekday(TODAY, 2) ' pour le test mettre NoJour=1 pour le lundi jusqu'à 5 pour le vendredi
car pas de prise en compte le week end.

j'ai peur d'abimer quelque chose...
Quelle importance, vous récupérez le fichier sur ce fil.
De toute façon le meilleur moyen de progresser est de bidouiller.

En PJ une V3 ... avec un peu plus de commentaires.
 

Pièces jointes

  • DOR Condi V5 health-check XLD (3).xlsm
    650.3 KB · Affichages: 2

Discussions similaires

Statistiques des forums

Discussions
312 192
Messages
2 086 054
Membres
103 109
dernier inscrit
boso_vs_viking