Compilation de plusieurs listes

Résolu
gar_laban Messages postés 13 Statut Membre -  
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    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
    0
    1. gar_laban Messages postés 13 Statut Membre 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
      0
  2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    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

    0
  3. gar_laban Messages postés 13 Statut Membre 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
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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
      0
    2. gar_laban Messages postés 13 Statut Membre 2
       
      Ça marche !!!
      Chapeau bas !!!
      Et un grand merci pour l'aide précieuse que vous m'avez apportée.
      Bien cordialement
      0
    3. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      pas de quoi :-))
      bonne route et au plaisir
      crdlmnt
      0