Trouver et inclure la lettre d'une colonne dans une formule

Signaler
Messages postés
9
Date d'inscription
samedi 27 mars 2021
Statut
Membre
Dernière intervention
29 mars 2021
-
Messages postés
23993
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
10 avril 2021
-
Bonjour,
Je vous explique mon cas :
J'aimerais pouvoir déduire, dans un onglet "Tache" la "date de fin" (colonne "U") d'une tâche, en fonction d'une "date de début" (colonne "P") et de la personne à qui elle est attribuée (colonne "L").
Ceci prenant en compte les éventuels congés de la personne (congés qui sont renseignés dans un autre onglet "Congés")

Aujourd'hui, j'ai la formule qui permet de faire ça,
=SERIE.JOUR.OUVRE.INTL(O5;M5;;Congés!B$4:B$152)
mais je suis obligé de modifier "manuellement" la lettre de la colonne correspondant à la personne assignée (ici "B").
Lettre qu'on retrouve dans l'onglet "Congés"
J'aimerais donc pouvoir automatiser ça dans ma formule.

Sachant qu'en plus, il y a peut-être de quoi améliorer ce que j'ai fais dans la mesure ou là lettre "B" située en colonne "K" de mon onglet est récupéré depuis la ligne 1 de l'onglet "Congés".
Cette valeur étant elle-même récupéré via la formule
=SUBSTITUE(ADRESSE(1;COLONNE();4);"1";"")
dans chaque colonne et ligne 1 de l'onglet "Congés"

Onglet "TACHE"


Onglet "CONGES"



Merci pour votre aide précieuse :D

Configuration: Macintosh / Opera 74.0.3911.218

4 réponses

Messages postés
23993
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
10 avril 2021
6 719
Bonjour,

sans fichier difficile d'aller plus loin que de te conseiller de regarder la fonction Decaler()
eric
Messages postés
53600
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
11 avril 2021
15 645
Bonjour quirs.

Pourquoi ne pas tout simplement définir le nom "Paul" pour la plage Congés!B$4:B$152, le nom "Luc" pour la plage Congés!C$4:C$152 etc. (rapide en sélectionnant B3:E152 et en faisant FORMULE/Noms définis/Depuis sélection) ?
Ta formule en U5 s'écrirait alors =SERIE.JOUR.OUVRE.INTL(O5;M5;;L5) !

Je n'ai pas pu tester ma proposition ; alors fais-le sur une copie de ton fichier :-)
Messages postés
9
Date d'inscription
samedi 27 mars 2021
Statut
Membre
Dernière intervention
29 mars 2021

"Pourquoi ne pas tout simplement définir le nom "Paul" pour la plage Congés!B$4:B$152, le nom "Luc" pour la plage Congés!C$4:C$152 etc"

Parce que PAUL pourra changer le mois prochain pour devenir PIERRE.
L'idée est donc d'avoir le moins possible à trifouiller les formules en cas de changement de NOMS :/

Cette solution était donc bien vue et même super !
Mais je me rends compte qu'au moindre changement de NOM, je dois aussi modifier manuellement le "nom de la plage" en conséquence... :(
Messages postés
53600
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
11 avril 2021
15 645 >
Messages postés
9
Date d'inscription
samedi 27 mars 2021
Statut
Membre
Dernière intervention
29 mars 2021

Salut quirs.

Pour donner suite à ton message #6, ta feuille CONGES est censée rester valable au moins pour toute l'année, et donc contenir une colonne pour chaque employé. Donc chaque colonne contiendra une plage dont le nom défini sera celui de l'employé, et ma proposition devrait marcher parfaitement, car tu n'auras absolument rien à modifier !
En effet il n'y a pas de changement de nom dans cette feuille, tous les noms étant déjà là.
J'ai d'ailleurs l'impression que tu n'as ni analysé ma suggestion, ni tenté de l'appliquer ...
Messages postés
9
Date d'inscription
samedi 27 mars 2021
Statut
Membre
Dernière intervention
29 mars 2021
>
Messages postés
53600
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
11 avril 2021

Je l'ai analysé et étudié et retenue pour le moment.
Mais comme je le disais, c'est un fichier me servant pour des projets.
Or, sur une année, j'ai plusieurs projets qui se suivent, mais rarement avec les mêmes collaborateurs.

Donc mon Onglet "Congés" prévoit tous les jours fériés d'une année, pour éviter d'avoir à les ajouter au fur et à mesure, mais ensuite le nom et la période des congés de chacun change plusieurs fois dans l'année.

Dans mon exemple, on est sur un projet de 2 mois (Mars-Avril). Je veux donc pouvoir renseigner les éventuels congés de chaque collaborateur sur cette période.
Mais ensuite arrivé en Mai, ca sera un autre projet avec d'autres collaborateurs.
Il faudra donc bien que je modifie les noms des plages à ce moment là, en même temps que les noms des collaborateurs (en Ligne 3)

Toutefois, ceci étant bien mieux que rien (et surtout bien plus pratique que ce j'avais jusque là), j'opte pour le moment pour cette solution :D
Messages postés
9
Date d'inscription
samedi 27 mars 2021
Statut
Membre
Dernière intervention
29 mars 2021
>
Messages postés
53600
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
11 avril 2021

Ceci étant dit, j'ai toujours un soucis.
Quand je recopie la formule vers le bas, j'ai un souci en ligne 7 et 8 (cela me dit "#VALUE").

Après une recherche, je me suis rendu compte que la formule ne devait pas fonctionner comme attendu .
En effet, si je supprime la valeur de la cellule L5, j'ai toujours un résultat de date en U5... C'est donc qu'il ne va pas chercher la plage de congés souhaitée dans la formule =SERIE.JOUR.OUVRE.INTL(O5;M5;;L5)
Comme s'il ne prenait pas en compte le dernier paramètre de la formule :(
Pourtant, dans mes lignes 7 et 8 si je remplace L7 (ou L8) par Congés!B$4:B$152 ça refonctionne correctement... Bizarre :(

Fichier accessible ici : https://drive.google.com/file/d/1Um4hOt3qkfmfVVFA54xXOzaSleRQb4Ir/view?usp=sharing
Messages postés
9
Date d'inscription
samedi 27 mars 2021
Statut
Membre
Dernière intervention
29 mars 2021

Je voulais mettre le fichier, mais seul les images fonctionnent, je n'arrive pas à ajouter un .xls :(

EN espérant que vous pourrez l'atteindre depuis : https://drive.google.com/file/d/1Um4hOt3qkfmfVVFA54xXOzaSleRQb4Ir/view?usp=sharing

J'ajoute aussi que si je veux automatiser, c'est parce que les noms des intervenants peuvent changer, être ajoutés...
En fonction des noms que j'ajoute dans mon onglet "Congés".
Dans mon exemple il y en 3, mais demain il pourrait n'y avoir que 2, ou 4.
J'essais donc de n'avoir à les modifier QUE dans cet onglet.
Messages postés
23993
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
10 avril 2021
6 719
Bonjour,

à tester :
=SERIE.JOUR.OUVRE.INTL(O5;M5;1;DECALER(Congés!$B$4:$B$152;;EQUIV(L5;Congés!$3:$3;0)-2)) 

ta colonne K ne sert pas
eric
Messages postés
23993
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
10 avril 2021
6 719 >
Messages postés
9
Date d'inscription
samedi 27 mars 2021
Statut
Membre
Dernière intervention
29 mars 2021

Garde tes photos pour les forums photoshop.
Que veux-tu qu'on en fasse ici ? Il faut un fichier xls
eric
Messages postés
9
Date d'inscription
samedi 27 mars 2021
Statut
Membre
Dernière intervention
29 mars 2021
>
Messages postés
23993
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
10 avril 2021

J'avais mis un lien vers le fichier, plus haut...
Tu peux le récupérer ici : https://drive.google.com/file/d/1Um4hOt3qkfmfVVFA54xXOzaSleRQb4Ir/view?usp=sharing
Messages postés
23993
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
10 avril 2021
6 719 >
Messages postés
9
Date d'inscription
samedi 27 mars 2021
Statut
Membre
Dernière intervention
29 mars 2021

Bonjour,
Avec :
=SERIE.JOUR.OUVRE.INTL(O6;M6;1;DECALER(Congés!$B$4:$E$152;;EQUIV(L6;Congés!$3:$3;0)-2))
=SERIE.JOUR.OUVRE.INTL(O5;M5;1;DECALER(Congés!$B$4:$B$152;;EQUIV(L5;Congés!$3:$3;0)-2))

en formule c'est normal
eric
Messages postés
9
Date d'inscription
samedi 27 mars 2021
Statut
Membre
Dernière intervention
29 mars 2021
>
Messages postés
23993
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
10 avril 2021

Idem, j'ai "VRAI" en résultat, mais pas de date.
Je dois toutefois avoir un soucis sur le fichier, que je n'arrive pas à trouver, mais qui doit empêcher le bon fonctionnement des formules :(

J'ai trouvé divers solutions pour remplacer le texte Congés!$B4:$B152 de façon dynamique (notamment via la formule =CONCATENER ou simplement en concaténant.
Ce qui donnait :
=SERIE.JOUR.OUVRE.INTL(O11;M11;;"Congés!"&K5&"$4:"&K5&"$152")  

ou alors
=SERIE.JOUR.OUVRE.INTL(O11;M11;;=CONCATENER("Congés!";K5;"$4:";K5;"$152")  )  


Quand je rentre tout simplement =CONCATENER("Congés!";K5;"$4:";K5;"$152") ou ="Congés!"&K5&"$4:"&K5&"$100" dans une cellule vide, j'obtiens bien le texte Congés!B$4:B$100 que je cherche à dynamiser.

Mais dès lors que je cherche à insérer autre chose que le texte pur et dur dans =SERIE.JOUR.OUVRE.INTL(O11;M11;;ICI), ca me met #VALUE ....

Donc :
=SERIE.JOUR.OUVRE.INTL(O11;M11;;Congés!B$4:B$152)
= FONCTIONNE

="Congés!"&K5&"$4:"&K5&"$152"
dans une cellule vide = Congés!B$4:B$152 (donc c'est bien ce que je cherche à obtenir, dans ma formule)

Mais dès que je l'insère dans la formule :
=SERIE.JOUR.OUVRE.INTL(O11;M11;;"Congés!"&K5&"$4:"&K5&"$152")
= #VALUE!
Messages postés
23993
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
10 avril 2021
6 719 >
Messages postés
9
Date d'inscription
samedi 27 mars 2021
Statut
Membre
Dernière intervention
29 mars 2021

Idem, j'ai "VRAI" en résultat, mais pas de date
Non mais fait un effort, ça devient...
TU AS MIS =formule1=formule2, ça ne peut te retourner que VRAI ou FAUX

Le fichier que je t'ai mis est-il correct ? oui
Tu fais un copié-collé de ma formule en ligne 5 et tu tires vers le bas.