Compilation de plusieurs listes [Résolu/Fermé]

Signaler
Messages postés
13
Date d'inscription
mardi 19 août 2014
Statut
Membre
Dernière intervention
1 septembre 2014
-
Messages postés
26074
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
-
Bonjour,
J'aurais besoin de compiler automatiquement (avec une formule) plusieurs listes de nom en une seule, triée et sans doublon.
Petite difficulté supplémentaire les listes à compiler ce trouvent dans un même classeur mais sur des feuilles différentes elles même liées à d'autre fichiers et ne doivent donc pas être modifiées
Dans l'exemple joint la liste compilée est dans "recap" et les listes à compiler dans les feuilles janvier, février et mars
Merci par avance pour toute l'attention que vous porterez à mon problème.

https://www.cjoint.com/?DHBodhLZV7T

Merci par avance

3 réponses

Messages postés
26074
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
5 962
Bonsoir
si vous ne dites pas comment on peut identifier les cellules à compiler dans vos tableaux au cas ou les cellules vides de la colonne A reçoivent des valeurs, ni avec quelle référence elles doivent être triées,il n'y aura pas de solutions.
à vous lire
crdlmnt

Errare humanum est, perseverare diabolicum
Messages postés
13
Date d'inscription
mardi 19 août 2014
Statut
Membre
Dernière intervention
1 septembre 2014
2
Les colonnes vides des colonnes A ne recevront pas de valeur, toutes les cellules non vides des feuilles mensuelles sont à compiler et le tri sera juste un tri alphabétique sur le nom
En fait le problème est de créer automatiquement une liste ABCDEFG à partir de ABE, BCDF, AG, ACEFG... par exemple si c'est plus clair
Merci pour votre attention
Cordialement
Messages postés
26074
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
5 962
Bonjour

Pas très facile de traiter ça par formule...
voir modèle joint avec quelques explications ci dessous:
https://www.cjoint.com/?DHCn5ekh2nX

Le système mis en place sur la feuille recap en colonne W,X,Y peut être placé sur une feuille spécifique masquée

la colonne W reprend l'alphabet
(ce champ est nommé Alpha)

la colonne X ressort la liste exhaustive des noms différents des trois feuilles (limité à 150 ligne par feuille à partir de la ligne 18)
(ce champ est nommé Nom)

la colonne Y code les noms trouvés en fonction de leur classement alphabétique
(sur les trois premières lettres seulement. On peut aller plus loin, il suffit de revoir la formule et les coef.
(Ce champ est nommé (Code)

les coef appliqués limites le nombre de noms à 100. )Il suffit de rajouter un 0 aux xcoef 1000000 / 10000 /1000 pour passer à 1000)

La formule en A ressort les noms selon la classement alpha
A noter que j"ai "bricolé" quelques noms pour valider l'option alpha, c'est pour cela que vous trouvez des noms avec la même N° (mais le texte de début est différent

Revenez si besoin de complément

crdlmnt

Messages postés
13
Date d'inscription
mardi 19 août 2014
Statut
Membre
Dernière intervention
1 septembre 2014
2
Bonjour,
Je ne crois pas qu'on soit loin de la solution...
Mais un soucis et quelques interrogations demeurent
- Si je rajoute des noms après la ligne 230 en janvier ou 168 en février, ils ne se rajoute pas à la liste globale. Serait-il possible de faire l'opération sur une plage plus importante ?
-de même pour tout mars
-Ensuite et surtout qu'est-ce que je dois modifier pour rajouter des mois.... pour faire le classeur sur une année ? Je ne vois pas dans vos formules ce qui fait référence au feuilles (autre que janvier...) du coup je ne vois pas quoi modifier.

En espérant ne pas abuser de votre temps
Et en vous remerciant d'ors et déjà pour votre investissement

Cordialement
Messages postés
26074
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
5 962
Bonjour
il y a dans la feuille Recap une formule colonne X qui récupére tous les noms ds trois feuilles l'une après l'autre, tout en éliminant les doublons
cette formule fait référence à la feuille Janvier de X2 à X151, à la feuille février de X 151 à X301 et à Mars de X 302 àX451
soit par exemple ppour être peut être plus clair:

ligne X2 la, formule:

=SI(OU(janvier.A19="";SOMMEPROD(($X$1:X1=janvier.A19)*1)>0);"";janvier.A19)
ne renvoi rien si janvier.A19 est vide
cherche si le nom détecté dans cette feuille est déjà présent en X dans le champ au dessus de la cellule où elle se trouve et si oui, ne renvoie rien
et sinon, renvoie la valeur de janvier.A19

en ligne X
=SI(OU(février.A19="";SOMMEPROD(($X$1:X151=février.A19)*1)>0);"";février.A19)
reprend le niveau de A19, mais pour la feuille février

ect pour chaque champ mensuel, toujours dans la colonne X

si vous voulez plus de capacité par mois, il faut agrandir chaque partie du champ jusqu'au plafond dont vous avez besoin, et bien sur redescendre d'autant le mois suivant.
Pour rajouter des mois, il suffit de recaler la formule en débit de ligne du mois dans le champ Z ect...(mais il faut que les feuilles existent, même vides!)

La colonne Y elle ne sert qu'à définir le rang où doit se trouver le nom ressorti en X, il suffit donc de tirer la formule vers le bas sur la hauteur du champ X

Pour terminer, la formule de la colonne A peut être tirée sur la hauteur voulue

il en restera plus ensuite qu'à aller dans la définition des noms pour réajuster les limites des champs (Code et Nom)

Notez que j"ai laissé par erreur dans lea iste des champs nommés les noms des mois suite à une première tentative. Ils ne servent à rien et peuvent être supprimés

n'hésitez pas à revenir si besoin, mais alors définissez bien les capacités souhaitées
Messages postés
13
Date d'inscription
mardi 19 août 2014
Statut
Membre
Dernière intervention
1 septembre 2014
2
Ça marche !!!
Chapeau bas !!!
Et un grand merci pour l'aide précieuse que vous m'avez apportée.
Bien cordialement
Messages postés
26074
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
5 962
pas de quoi :-))
bonne route et au plaisir
crdlmnt