XL 2019 Dupliquer le résultat d'une cellule dans les suivantes

AlexC

XLDnaute Nouveau
Bonjour à tous,

Je dois réaliser un plan de charges automatisé sur excel afin de mettre en évidence les mois au cours desquels nous allons avoir des charges concernant les ouvertures de boutiques et j'ai quelques difficultés à trouver les éléments répondants à toutes mes questions.
N'ayant pas beaucoup de compétences sur ce logiciel, je recherche sur tous les forums des solutions qui pourrait m'aider et j'ai pu commencer à avancer.

J'ai donc dans un premier temps créé un calendrier automatique et parallèlement sur une autre feuille créer un retroplanning afin de mettre les dates d'ouvertures des boutiques et que cela me renvoit les dates auxquelles je dois commencer mes tâches.

Dans mon calendrier automatiques j'ai donc inséré la formule :
=SI(NB.SI('Plan de charges Projet'!$C$35:$C$76;V6)>0;"D";"")

Afin de renvoyer un "D" (signifiant Début) le jour où je dois commencer une activité. Jusque là tout va bien.

Maintenant j'aimerais afficher le temps que me prend la réalisation de l'activité. Par exemple ma première activité me prend 20 jours ouvrés, j'aimerais donc que dans les 20 cellules suivants mon "D", s'affiche "EC" par exemple (pour en cours). Concrètement l'idée sera surtout de mettre cela en couleur.

Pour le moment j'ai donc inséré la formule :
=SI(NB.SI('Plan de charges Projet'!$C$35:$C$76;C6)>0;"D";"") & SI(B10="D";"EC";"")

Mais cela m'affiche donc seulement un EC dans la cellule suivant un D et je ne sais pas comment faire pour afficher ce "EC" dans les 20 cellules suivants le "D"

J'espère avoir été claire, votre aide me serait très utile !

Merci d'avance !
 
Solution
Bonjour

Cf. la mise en forme conditionnelle définie dans la cellule C5. Pour voir le résultat obtenu, mettre des D n'importe où dans le cadre...

@ plus

P.S : C'est plus facile avec une MFC, donc, j'ai fait une MFC. En plus, cela laisse la possibilité de mettre des formules ou du texte dans les cellules.

CISCO

XLDnaute Barbatruc
Bonjour

Cf. la mise en forme conditionnelle définie dans la cellule C5. Pour voir le résultat obtenu, mettre des D n'importe où dans le cadre...

@ plus

P.S : C'est plus facile avec une MFC, donc, j'ai fait une MFC. En plus, cela laisse la possibilité de mettre des formules ou du texte dans les cellules.
 

Pièces jointes

  • essai MFC.xlsx
    10.1 KB · Affichages: 13
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour

La syntaxe de la fonction DECALER est DECALER (cellule ou plage ; nbre de lignes du décalage;nbre de colonnes du décalage;nbre de lignes retournées;nbre de colonnes retournées). Les 3 paramètres en gras sont obligatoires.
Par ex DECALER(C5;;5) va donc renvoyer H5 (pas de changement de ligne, 5 colonnes vers la droite).
DECALER(C5;2; ; ) donnera C7 (pas de changement de colonne, 2 lignes plus bas).

On utilise dans C5 la formule NB.SI(DECALER(C5;;-MIN(COLONNE();20)+1;;MIN(COLONNE();20));"D"). Ici, quand on "est" dans une cellule sur la ligne 5, par ex F5, on veut savoir si une des cellules qui la précèdent sur cette ligne contient la lettre D, ce qui peut être obtenu avec un NB.SI(plage;"D").
Reste plus qu'à trouver comment calculer automatiquement cette plage A5:F5, à gauche de F5, sur la ligne 5 (pas de changement de ligne, et un décalage négative pour aller vers la gauche, vers la colonne A).
Comme on utilise C5 et pas $C5, ou C$5, ou $C$5, en F5, la formule dans la MFC donne :
NB.SI(DECALER(F5;;-MIN(COLONNE();20)+1;;MIN(COLONNE();20));"D")
COLONNE() = 6, donc on a
NB.SI(DECALER(F5;;-MIN(6;20)+1;;MIN(6;20));"D")= NB.SI(DECALER(F5;;-6+1;;6);"D")= NB.SI(DECALER(F5;;-5;;6);"D") = NB.SI(A5:F5;"D") = 1
Pour Excel, 1 (ou 2, ou 3...) dans une condition, équivaut à VRAI, 0 à FAUX.
On utilise MIN(COLONNE();20) car on ne peut pas commencer une plage à gauche de la colonne A (ce que donnerait DECALER(F5;;-19;;20) (il ni a pas de colonne à gauche de la colonne A), ni prendre une plage trop longue vers la droite (ce que donnerait DECALER(F5;;-19;;20) (Si la lettre D est à droite de F5, par ex dans G5, elle ne doit pas être prise en compte).

Il y a plein de petits détails à expliquer, mais, bon, j'espère que cela te suffira. Pour voir ce que donne cette formule, colle là dans C5, puis Formule --> Evaluation de formule...

@ plus

PS : Ce qui signifie d'ailleurs que si tu mets un D dans les colonnes A ou B, tu auras du orange dans les 19 ou 20 cellules suivantes vers la droite. Pour être plus précis, dans mon fichier exemple, il aurait fallu faire avec NB.SI(DECALER(C5;;-MIN(COLONNE();20)+3;;MIN(COLONNE();20)-2);"D")
 
Dernière édition:

AlexC

XLDnaute Nouveau
Bonjour,

Je me permets de revenir vers vous sur le même sujet.
J'aimerais en fait non pas afficher d'une certaine couleur les 20 cellules suivants le "D" mais seulement le 20 jours ouvrés suivants… je ne sais pas si cela est possible.

Merci d'avance.
 

AlexC

XLDnaute Nouveau
Je crois que je vais abuser de votre gentillesse @CISCO :rolleyes:....
J'ai un onglet avec un tableau contenant la liste des jours fériés, et j'ai pu les colorer dans mon calendrier pour les mettre en avant, ainsi que les Week-end. Mais j'ai beau essayer diverses manipulations je n'arrive pas à les exclure de ma MFC comme vous l'avez fait pour les Week-end… si jamais vous avez la solution… ^^'

Bien à vous,

Alex
 

CISCO

XLDnaute Barbatruc
Bonjour

Cf. en pièce jointe. J'ai modifié la MFC, en y utilisant la plage dénommée joursfériés dans le gestionnaire de noms, mais tu peux faire en utilisant directement la plage où tu as écri ces jours fériés.

@ plus
 

Pièces jointes

  • essai MFC.xlsx
    11.9 KB · Affichages: 5

Discussions similaires

Réponses
4
Affichages
544

Statistiques des forums

Discussions
315 098
Messages
2 116 189
Membres
112 679
dernier inscrit
Yupanki