Modifier contenu d'une cellule en fonction du jour de la semaine en VBA

  • Initiateur de la discussion Initiateur de la discussion Riko
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Riko

XLDnaute Occasionnel
Bonjour,
je voudrais modifier le contenu d'une cellule en fonction du contenu de 3 autres.
Je voudrais insérer ce code dans une boucle déjà existante pour MFC en VBA.
Je vous joins un fichier pour mieux comprendre.
Merci d'avance
 

Pièces jointes

Re : Modifier contenu d'une cellule en fonction du jour de la semaine en VBA

Bonsoir,
à tester :
Code:
=SI(ET(OU(ET(NB.SI(Feries;B7);JOURSEM(B7;2)=4;JOURSEM(B10;2)=7);ET(NB.SI(Feries;B7);JOURSEM(B7;2)=3;JOURSEM(B3;2)=6));DECALER(Cycle;MOD(C7-debutCycle;nbJours);;1;1));"AS";DECALER(Cycle;MOD(C7-debutCycle;nbJours);;1;1)&"")
Pour les couleurs, je ne vois pas de MFC dans ton fichier donc je ne sais pas comment tu veux procéder.
A+
Edit : concernant le formule initiale,
Code:
=DECALER(Cycle;MOD(C7-debutCycle;nbJours);;1;1)&""
suffisait pour ne pas faire apparaître les 0
 
Re : Modifier contenu d'une cellule en fonction du jour de la semaine en VBA

Merci,
Je regardes ta formule.
Pour la MFC, il n'y en a pas car je l'ai remplacé par la macro car il me fallait plus de 3 MFC et dans excel 2003 ça ne passe pas.
Et je regarderais également pour
suffisait pour ne pas faire apparaître les 0
 
Re : Modifier contenu d'une cellule en fonction du jour de la semaine en VBA

David,
ta formule ne fait pas ce que je recherchais.
Si le jour férié est un lundi ou mardi ou mercredi on tient compte de la valeur du week end précédent,
si le jour férié est un Jeudi ou vendredi on tiendra compte du week end suivant.
 
Re : Modifier contenu d'une cellule en fonction du jour de la semaine en VBA

Re
il y a certainement plus simple mais nouvelle proposition à tester :
Code:
=SI(OU(ET(NB.SI(Feries;B7);JOURSEM(B7;2)<4;OU(ET(JOURSEM(B3;2)=6;MOD(C3-debutCycle;nbJours)=5;MOD(C4-debutCycle;nbJours)=6);ET(JOURSEM(B4;2)=6;MOD(C4-debutCycle;nbJours)=5;MOD(C5-debutCycle;nbJours)=6);ET(JOURSEM(B5;2)=6;MOD(C5-debutCycle;nbJours)=5;MOD(C6-debutCycle;nbJours)=6)));ET(NB.SI(Feries;B7);JOURSEM(B7;2)>3;OU(ET(JOURSEM(B8;2)=6;MOD(C8-debutCycle;nbJours)=5;MOD(C9-debutCycle;nbJours)=6);ET(JOURSEM(B9;2)=6;MOD(C9-debutCycle;nbJours)=5;MOD(C10-debutCycle;nbJours)=6);ET(JOURSEM(B10;2)=6;MOD(C10-debutCycle;nbJours)=5;MOD(C11-debutCycle;nbJours)=6))));"AS";DECALER(Cycle;MOD(C7-debutCycle;nbJours);;1;1)&"")
A+
 
Dernière édition:
Re : Modifier contenu d'une cellule en fonction du jour de la semaine en VBA

Je viens de tester mais ça ne fonctionne toujours pas.
"AS" est ajouté alors que le weekend est vide. Je souhaite que l'on ajoute AS seulement sur le weekend où M.as est présent.
De plus quelque chose m'interpelle: les fonctions sont calculées les unes après les autres,
Si je dois tenir compte d'une cellule suivante avant son calcul il va y avoir problème.
A mon avis, il faut que je passe par une macro.
Le remplissage du tableau se ferait par
Code:
=DECALER(Cycle;MOD(C7-debutCycle;nbJours);;1;1)
formule simplifiée et masquage des zéros par format "[=0]"";Standard"
Puis mise en forme selon contenu (weekend, jours feriés, poste de travail) via macro car plus de 3 MFC.
Et c'est dans cette boucle que j'aurais modifier le contenu de ma cellule.
Qu'en penses tu ?
 
Re : Modifier contenu d'une cellule en fonction du jour de la semaine en VBA

Re
AS" est ajouté alors que le weekend est vide. Je souhaite que l'on ajoute AS seulement sur le weekend où M.as est présent
c'est pourtant le cas (cf.fichier). Place un exemple sur le fichier où tu constates que cela ne donne pas le résultat escompté et place manuellement le résultat voulu.
De plus quelque chose m'interpelle: les fonctions sont calculées les unes après les autres,
Si je dois tenir compte d'une cellule suivante avant son calcul il va y avoir problème.
je ne vois pas de quoi tu parles mais ceci-dit, je n'ai peut-être pas toutes les explications.
Le remplissage du tableau se ferait par
Code :
=DECALER(Cycle;MOD(C7-debutCycle;nbJours);;1;1)
formule simplifiée et masquage des zéros par format "[=0]"";Standard"
pas besoin de format de cellule personnalisé :
Code:
=DECALER(Cycle;MOD(C7-debutCycle;nbJours);;1;1)&""
te masque les 0 (ce que je t'avais déjà suggéré).
A+
 

Pièces jointes

Dernière édition:
Re : Modifier contenu d'une cellule en fonction du jour de la semaine en VBA

Bon,ben ça fonctionne avec ton fichier.
je ne sais pas où je me suis planté.
Pour les zéros, j'avais zappé le plus important (la fin de la formule)
Je vais essayer d'adapter ça sur mon fichier de travail.
Je te tiens au courant.
Merci.
 
Re : Modifier contenu d'une cellule en fonction du jour de la semaine en VBA

J'ai enfin réussi à faire ce que je souhaitais, il me reste encore quelques bricoles à peaufiner.
J'ai modifié la formule comme ceci:
Code:
=SI(OU(ET(NB.SI(Férié;E19);JOURSEM(E19;2)<4;OU(DECALER(F19;-1;0)=weAs;DECALER(F19;-2;0)=weAs;DECALER(F19;-3;0)=weAs;DECALER(F19;-4;0)=weAs));ET(NB.SI(Férié;E19);JOURSEM(E19;2)>3;OU(DECALER(F19;1;0)=weAs;DECALER(F19;2;0)=weAs)));"AS";DECALER(Cycle;MOD(E19-debutCycle;nbJours);;1;1)&"")
Dans la colonne E, il y a les dates et dans F les postes travaillés.
Dans weAs il y a le texte "M.As" (modifiable selon les gouts).

Merci pour ton aide.🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour