Recherche formule Excel
Résolufaisdlair Messages postés 171 Date d'inscription Statut Membre Dernière intervention -
J'ai besoin d'aide pour une formule.
Le premier onglet se nomme TABLES sur lequel les données progresses constamment. La première colonne contient des noms d'employés.
Les 52 colonnes suivantes contiennent un nombre d'heures travaillées par semaine pour lesquels ces données sont entrer manuellement.
Les autres onglets (selon le nombre de noms des employés a la colonne A du premier onglet), seront nommé selon le nom de chaque employé.
Donc ma demande est : a la colonne C de chaque onglet, d'afficher la valeur correspondante au nom de l'employé pour chaque employé pour le nombre d'heures par semaine.
Je mets le fichier pour bien voir ma demande.
https://www.cjoint.com/c/LBuqTGA4YAY
Merci
- Recherche formule Excel
- Formule si et excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule somme excel colonne - Guide
- Excel mise en forme conditionnelle formule - Guide
- Liste déroulante excel - Guide
46 réponses
ça venait de l'identification du nom de l'onglet essye avec cette formule dans chaque cellule C3
=INDEX(TABLES!$A$3:$BB$50;EQUIV(STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE("nomfichier";A1))+1;20);TABLES!$A$3:$A$50;0);EQUIV((TEXTE(A3+6;"j mmmm")&" "&B$2)*1;TABLES!$A$3:$BB$3;0))
Oui c'est tout a fait ça, si tu as assez de 30 caractères il suffit de remplacer le 20 par 30 ou plus
=INDEX(TABLES!$A$3:$BB$50;EQUIV(STXT(CELLULE("nomfichier";A1);TROUVE("]";CELLULE("nomfichier";A1))+1;30);TABLES!$A$3:$A$50;0);EQUIV((TEXTE(A3+6;"j mmmm")&" "&B$2)*1;TABLES!$A$3:$BB$3;0))
Par contre après il faut que le nom soit exactement orthographié dans l'onglet TABLES, si tu as une erreur c'est qu'il y une erreur à ce niveau, souvent un espace qui nous échappe, le mieux est de faire un COPIER/COLLER du nom de l'onglet dans la colonne NOMS ou inversement
En C3 de chaque onglet colle cette formule que tu incrémenteras vers le bas
=INDEX(TABLES!$A$3:$P$50;EQUIV(STXT(CELLULE("nomfichier");TROUVE("]";CELLULE("nomfichier"))+1;20);TABLES!$A$3:$A$50;0);EQUIV((TEXTE(A3+6;"j mmmm")&" "&B$2)*1;TABLES!$A$3:$BB$3;0))
Tu peux écourter la formule en nommant tes plages de l'onglet TABLES, exemple la tableau A3:BB50 nommée Tablo, la plage des noms A3:A50 nommée Nom et la plage des dates A3:BB3 nommée Date ce qui te permettra de modifier dans le gestionnaire des noms tes plages et de ce fait toutes tes formules s'actualiseront
=INDEX(Tablo;EQUIV(STXT(CELLULE("nomfichier");TROUVE("]";CELLULE("nomfichier"))+1;20);Nom;0);EQUIV((TEXTE(A3+6;"j mmmm")&" "&B$2)*1;Date;0))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionvotre fichier en retour, avec quelques explications en feuille TABLES
revenez si soucis
https://www.cjoint.com/c/LBusAjFtfYc
crdlmnt
Non la formule donne la bonne réponse, sur le premier onglet tu as la formule normale et sur les autres onglets la formule avec les plages nommées
https://www.cjoint.com/c/LBusFMpVOrF
prends ce fichier, je crois que je ne t'ai pas retourné le bon
https://www.cjoint.com/c/LBusSMYlbgF
quelle formule as tu retenue, celle avec les plages nommées ou avec formule classique !
es ce que dans les autres onglets la formule fonctionne !
si tu as recopié la formule classique as tu respecté le symbole DOLLAR $
si ta matrice est exemple A3;R20 il est impératif que la liste des noms soit du même nombre de ligne A3:A30 comme pour le nombre de colonne, si ta matrice va jusqu'à R il est impératif que la liste des dates soit A3:R3
il y a une erreur au début, tu as =INDEX(TABLES!$A$3:$P$50; alors qu'il faut =INDEX(TABLES!$A$3:$BB$50; pour avoir la même longueur des plages
la formule correcte est
=INDEX(TABLES!$A$3:$BB$50;EQUIV(STXT(CELLULE("nomfichier");TROUVE("]";CELLULE("nomfichier"))+1;20);TABLES!$A$3:$A$50;0);EQUIV((TEXTE(A3+6;"j mmmm")&" "&B$2)*1;TABLES!$A$3:$BB$3;0))
est-ce que je dois mettre cette formule a la cellule C3 de chaque onglet ?
Si je mets la même formule en C3 de chaque onglet, j'obtiens toujours la même valeur sur tous les onglets
https://www.cjoint.com/c/LButC4ZIuEY
Merci
Dans ton premier onglet tu n'as pas modifié la première formule comme je t'ai expliqué sur le post 11
alors pour éviter les interférences efface la formule En C3 et colle celle ci dessous
=INDEX(TABLES!$A$3:$BB$50;EQUIV(STXT(CELLULE("nomfichier");TROUVE("]";CELLULE("nomfichier"))+1;20);TABLES!$A$3:$A$50;0);EQUIV((TEXTE(A3+6;"j mmmm")&" "&B$2)*1;TABLES!$A$3:$BB$3;0))
et idem dans chaque onglet efface C3 et colle la même formule
https://www.cjoint.com/c/LButTtU6JnF
Oui mais si je repars a zéro et que j'efface toutes les formules des colonnes c de tous les onglets .
Je prends ta dernière formule et je mets a C3 du premier onglet et ca fonctionne aussi.
Ensuite au deuxième onglet, a C3 je colle la même formule, je me retrouve avec les mêmes données aux 2 onglets.
Merci
Bonjour Mike,
J'espère que tu vas bien, est-ce que vous pourriez m'aider encore une fois pour le fichier que vous m'aviez adapté en février 2022. J'ai un petit soucis avec celui-ci.
Merci et bonne journée
Re,
Je me suis permis de supprimer ton post contenant des fichiers hautement confidentiels.
Regarde en haut à droite de la discussion tu verras ton pseudo avec un petit rond rouge, clic dessus et Boite de réception je t'ai laissé un message à ce sujet.
Cordialement
Re,
je me souviens de ton fichier, déjà le bouton IMPORT lié au code Sub QC_MR() ne veut rien dire, il prépare une copie sur une plage "A8:BC35" alors que ton tableau s'arrête à la colonne V, par contre il y a une montagne de ligne, puis il désactive le mode COPY pour recommencer, colle plusieurs fois les données pour finalement filtrer les données que sur une partie de la matrice.
que veux tu faire exactement avec ce bouton IMPORT, si je comprends ta demande, certainement copier toute la plage pour prendre en compte le rajout d'un nom en fin de tableau.
pour la deuxième question, certainement que oui, il suffit avec le bouton IMPORT des fichiers 2023 de coller les données mais çà a voir après avoir corrigé cette macro Sub QC_MR()
Re,
Seul les fichiers et données confidentielles ne doivent transiter en clair, mais les discussions doivent rester ouvertes.
pour revenir à ton problème et avant de partir tête baissée, ton problème ne concerne que le fichier C2022
sous réserve d'avoir bien compris, tu veux ajouter un onglet ou supprimé et donc sur l'onglet TABLES tu veux que la liste des noms colonne A s'actualise et les données se filtrent en ordre croissant, c'est bien cela
je ne me souviens pas, les données de chaque agent en fin de chaque de semaine comment sont t'elles transposées sur l'onglet TABLES manuellement !
exemple pour la première ligne BENOIT il y a deux lignes, es ce nécessaire !
semaine du 3 décembre sur la 1ére ligne 3,00 et sur la 2éme 48,00 explique ce fonctionnement
Oui mon problème n'est que sur le fichier C2022. Les 2 autres sont correct.
Oui ajouter ou supprimer un onglet qui correspondent aux noms des employés. Oui je veux que la liste a la colonne A s'actualise et soit en ordre alphabétique aussi.
Oui les données sur chaque employé dans leur onglet correspondant sont entrées manuellement (Colonne D sur chaque onglet des employés)
Oui il y a des noms qui apparaissent sur 2 lignes car ces employés ont des données correspondantes sur les 2 autres classeurs. De combiner ces 2 lignes en une seule a l'onglet TABLES serait-il possible
Merci,
Re,
En attendant ton retour, j'ai regardé tes formules et ce que je te proposais ne peut fonctionner et c'est normal d'avoir de #N/A ou des cellules vides parce qu'on est en circulaire, un peu comme le serpent qui se mord la queue
dans les colonne C de chaque agent tu as cette formule
=SI(NB.SI(Noms;$B$1)=1;INDEX(Tablo;EQUIV($B$1;Noms;0);EQUIV((TEXTE(A3+6;"j mmmm")&" "&B$2)*1;Dates;0));INDEX(Tablo;EQUIV($B$1;Noms;0);EQUIV((TEXTE(A3+6;"j mmmm")&" "&B$2)*1;Dates;0))+INDEX(Tablo;EQUIV($B$1;Noms;0)+1;EQUIV((TEXTE(A3+6;"j mmmm")&" "&B$2)*1;Dates;0)))
qui fait référence au tableau onglet TABLES parce qu'apparemment les heures travaillées de chaque agent colonne C proviennent du tableau TABLES.
il faut donc revoir tout le code VBA pour simplement afficher dans TABLES que les onglets visibles
enfin c'est ce que je comprends
Bonjour Mike,
Je comprends mieux avec ton explication maintenant, alors le VBA doit être revu aussi.
Oui ce que tu comprends est bon aussi
Merci,
Re,
teste ce fichier voir ce qui est possible de faire, on verra plus tard pour l'adapter à ta sauce.
Si tu clic sur le bouton Masquer/Afficher
une boite de dialogue te propose de masquer ou afficher l'onglet et la ligne dans l'onglet TABLES
dans le cas ou tu rajouterais un onglet, une boite de dialogue te proposera de créer automatiquement la ligne dans l'onglet TABLES
dans le cas on un onglet est masqué et que tu crées une ligne au nom de cet onglet, il y a déséquilibre vu que, l'onglet est masquée et la ligne visible, il suffit de faire deux cycles Masquer/Afficher pour qu'ils se mettent en harmonie
le bouton filtre les données classe en ordre croissant le tableau
https://www.cjoint.com/c/MAhqviEWRGF
Bonjour Mike,
Je viens de tester et ca marche bien, j'ai crée un nouvel onglet et je l'ai nommé ALAIN. Ensuite avec le bouton MASQUE...., ca m'a permit d'ajouter une ligne. Et le bouton filtre a mis en ordre alphabétique.
Ce que je comprends, c'est que tu repars de zéro. Je te laisse continuer
Merci et bon Samedi
Merci ca fonctionne super bien. Juste un petit bug encore, J'ai des noms d'employés qui dépasse 20 caractères et la formule ne fonctionne pas. Je vois bien dans ta formule qu'il y as le chiffre 20 a mi-chemin, mais si je mets 25 par exemple , ca ne fonctionne pas. Y a t-il une limite de caractères pour le nom d'un onglet
Merci