Itération de SI sur un colonne donnée, ligne par ligne

  • Initiateur de la discussion Initiateur de la discussion paicito
  • 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 !

paicito

XLDnaute Nouveau
Bien le bonjour,

Tout d'abord désolé si le sujet a déjà été abordé, j'ai bien cherché sur le forum et sur Google, cependant les résultats sont bien trop disparates et ne m'ont donc pas aidé. J'essayé avec IF , SUMIFS , NVLOOKUP .

Contexte
Il s'agit de deux tableaux:
- Tableau1 avec à chaque ligne les colonnes suivantes:
- - strucutre: | Objet | Remarques | Personnes |
- - Une ligne par Objet
- - Chaque Objet peut contenir une ou plusieurs Personnes dans sa cellule "Personnes"
- Tableau2:
- - structure: | Personne | Liste d'objets |
- - Une ligne par personne
- - Chaque personne a dans sa cellule "Liste d'objets" la liste d'Objets dans laquelle son nom est présent.

Example
- Tableau1:
- - | Objet | Remarques | Personnes |
- - | OBJET1 | blabla | Pierre, John |
- - | OBJET2 | blabla | Paul, John, Jacques |
- - | OBJET3 | blabla | Jaques |
- - | OBJET4 | blabla | John, Pierre |
- Tableau2 devrait dynamiquement générer la cellule "Liste d'objets" pour chaque personne tel que:
- - | Personne | Liste d'objets |
- - | Pierre | OBJET1, OBJET4 |
- - | Paul | OBJET2 |
- - | Jacques | OBJET2, OBJET3 |
- - | John | OBJET1, OBJET2, OBJET4 |

Merci infiniment pour votre aide,
Paicito
 
Re : Itération de SI sur un colonne donnée, ligne par ligne

Bonjour paicito et bienvenue à toi 🙂

Le sujet a effectivement peut-être été abordé, mais on est d'accord de dire que c'est parfois difficile de retrouver des sujets similaires 🙄
Ceci dit, dans un cas comme celui que tu exposes, difficile de proposer quoi que ce soit, sans fichier exemple:
- ton Tableau1 figure en Feuil1? à partir de la cellule A1? ... ou son emplacement est différent?
- en colonne A, un "Objet" ne sera repris qu'une seule fois?
- dans le fichier réel, "Jacques" est vraiment une personne différente de "Jaques"?

D'autre part, il faut que tu explicites un peu le contexte:
- ton Tableau résultat devra apparaître sous le premier ou en Feuil2?
- tu dois faire ce travail de "répartition" une fois et une seule ... ou ton Tableau1 est alimenté en permanence et le second doit se mettre à jour au fur et à mesure?
- une solution par macro est envisageable?

Ce que tu nous a expliqué, c'est le principe de base ... les détails sont certainement clairs dans ton esprit, mais celui-ci ne nous est guère accessible!
 
Re : Itération de SI sur un colonne donnée, ligne par ligne

Merci pour ton accueil et ta prompte réponse !

Voici les spécifications demandées qui sont illustrées par le fichier exemple ci-joint.
- Les deux tableaux sont en Feuil1.
- Effectivement, en colonneA, chaque objet est unique.
- Jaques est la double personnalité de Jacques ! Plus sérieusement, ce fut une faute de frappe de ma part 🙂
- Le tableau résultat peut très bien apparaître en Feuil1 également.
- Le tableau résultat doit être mis à jour automatiquement lorsqu'un nom est rajouté dans la ligne d'un Objet.
- Je ne sais comment utiliser les macros, cependant je ne suis pas contre...

Comme tu le dis c'est effectivement clair dans mon esprit mais plutôt dur à expliquer, comme c'est souvent le cas pour des non-experts en une technologie !
Voici donc l'explication de ce tableau. C'est une liste d'objets à répartir entre un nombre fini et défini de personnes. Et, afin que la répartition en terme de valeur d'objets par personne soit équitable, je souhaite créé ce tableau qui me permettra de mettre à jour facilement non seulement la liste d'objet mais aussi les personnes et qui aura quoi.

Voici pour de courtes explications, cependant je ne suis pas sûr que ce soit plus clair !!

Merci encore !

Edit: sur le deuxième point je parlais bien de la colonneA.
 

Pièces jointes

Dernière édition:
Re : Itération de SI sur un colonne donnée, ligne par ligne

Re-bonjour,

Une proposition par macro (je ne vois pas comment on pourrait faire par formule ... mais si quelqu'un veut s'y essayer, je lirai avec intérêt ... ensuite je verrai si je comprends!?)
La macro se déclenche à chaque modification de la plage A2:C200, de la feuil1. Je me demande si on n'aurait pas intérêt à placer le Tableau2 dans une autre feuille et exécuter la macro à l'activation de cette feuille??
Les résultats s'affichent actuellement en colonnes E et F; résultats conformes à ceux des colonnes H et I (sauf le tri sur les noms)

La proposition est à tester, amender, modifier, améliorer, etc.
 

Pièces jointes

Re : Itération de SI sur un colonne donnée, ligne par ligne

Modeste,

Je te prie d'excuser mon ignorance mais, comment puis-je reproduire l’exécution de la macro ?!!
C'est à dire comment puis-je la recopier et l'utiliser dans un autre tableau?

Au passage, cela serait-il plus facile si l'on met une personne par cellule dans le premier tableau, au lieu de les séparer par des virgules ?
 
Re : Itération de SI sur un colonne donnée, ligne par ligne

paicito,

Ne vous excusez point, mon brave ami: la proposition n'avait -comme je l'ai signalé- pour autre but que de vérifier si le résultat correspondait aux attentes 😉 As-tu essayé de modifier/ajouter des noms pour les 8 objets renseignés en colonne A, d'ajouter des objets supplémentaires (avec un nom existant, puis avec des noms nouveaux)?
Que penses-tu de la proposition de placer le tableau2 en Feuil2? Serait-ce gênant pour toi?

Dans un second temps, je promets de répondre à toutes tes questions (... enfin ... toutes ...) 🙄
 
Re : Itération de SI sur un colonne donnée, ligne par ligne

Mon cher Modeste,

Discuter avec toi et demander un peu est un véritable plaisir ! Et pour être tout à fait honnête, cela me fait penser qu'il est grand temps que je revienne en France, en effet ce n'est pas à Pékin que l'on trouve tant de serviabilité [gratuite] !!! :-D

La macro fonctionne on ne peut mieux, rajouter des objets ou des personnes est tout à fait dynamique, exactement ce qui était demandé.
Pour ce qui est de mettre le résultat en Feuil2, je préférerais tout garder en Feuil1. Cependant si cela facilite la tâche alors en Feuil2 ira très bien.

Ceci me ramène à la question du comment, c'est à dire comment reproduire la macro? 🙂

Merci encore pour cette sympathique assistance !
 
Re : Itération de SI sur un colonne donnée, ligne par ligne

Merci JHA,

Ça fonctionne très bien également (en voyant la formule je pense qu'effectivement je n'y serait jamais parvenu tout seul !).

Cependant la solution de Modeste est un peu plus dynamique donc si le côté macro n'est pas trop difficile à implémenter, j'opterai pour la sienne, sinon nul doute que la tienne siéra parfaitement aux besoin de mon tableau.

Merci bien,
paicito
 
Re : Itération de SI sur un colonne donnée, ligne par ligne

Re²,

En attendant la réponse de JHA, une seconde proposition, affichant les résultats en Feuil2.
Dans le système utilisé précédemment, l'événement qui déclenchait la macro était le changement de valeur dans une cellule de la Feuil1. Même si le reste du code ne s'exécute que si la plage A2:C200 est modifiée, toute modification n'importe où dans la feuille déclenche la macro et, dans la macro elle-même, comme des cellules sont modifiées, l'événement a lieu à de multiples reprises.
Pour éviter la chose, j'avais désactivé la gestion d'événements dans la macro. D'autre part, si plus d'une cellule était modifiée, on sortait de l'exécution de la macro (difficile, dès lors, d'effacer plus d'une cellule à la fois ou de copier-coller plusieurs données)

Dans cette nouvelle version, la macro s'exécute (une seule fois) chaque fois que l'utilisateur clique sur l'onglet de la seconde feuille du classeur. C'est dans la première feuille du classeur (colonnes A à C) que les données doivent être placées. J'ai commenté le code, pour donner quelques points de repères.
Pour voir le code en question, cliquer droit sur l'onglet de la feuille "Result" > Visualiser le code
 

Pièces jointes

Re : Itération de SI sur un colonne donnée, ligne par ligne

Superbe !
J'ai pu adapter le code au fichier excel définitif et ça marche merveilleusement bien !

Merci encore JHA.
Modeste, mes salutations respectueuses et une bien grande reconnaissance (crois moi, aider gratuitement les autres fini TOUJOURS par payer !!!).

Bonne fin de dimanche à vous deux,
paicito
 
- 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
Retour