Copier lignes ayant même référence dans deux classeurs

Résolu
Bonjour à tous,

Je n'arrive pas à trouver de solution à mon problème, alors je fais appel aux pro !

J'ai deux fichiers : "Extraction" dans lequel j'ai un tableau de données et "fiche automatique" où lorsque je remplis une cellule avec un code "M" les informations s'y rapportant (venant du fichier "extraction") apparaissent.

Lorsque pour un code "M", il y a plusieurs variantes, donc plusieurs lignes, je n'arrive pas à les extraire toutes et à les placer comme je le souhaite.

Voici un exemple de mes deux fichiers (j'ai également des contraintes sur certaines colonnes, expliquées dans le fichier "fiche automatique")

Merci beaucoup de votre aide !!

EXTRACTION : https://www.cjoint.com/?0GDqx79quVn
FICHE AUTOMATIQUE : https://www.cjoint.com/?0GDqzd4xoje

52 réponses

Résumé de la discussion

Le problème porte sur l’extraction de plusieurs variantes associées à un même code M dans deux classeurs : la table d’extraction et la fiche automatique qui s’y alimente. Une macro VBA a été proposée et adoptée pour générer, sans doublons, les listes correspondantes lorsque plusieurs lignes partagent le même code M, afin d’organiser l’affichage par blocs et colonnes spécifiques (notamment RCF: CLR et RMF/T). Les échanges suivants ont porté sur l’ajustement des procédures et des colonnes à copier dans les classeurs concernés, ainsi que sur le nombre maximum de codes M identiques à traiter et sur les formules employées. Des améliorations ont été ajoutées pour gérer jusqu’à 40 CLR et pour corriger des formules, comme le remplacement d’un NB.SI par une plage directe, afin d’éviter les erreurs et faciliter l’impression des cellules remplies.

Bobot (l’IA à votre service)
  1. Bonjour,
    Eh bien, dans la fonction par exemple [=SI($AH$2>2;INDEX(col_clr;1+32);"") vous avez oublié d'incrémenter la valeur de référence de la première condition qui doit-être la même que celle de la valeur si Vrai soit dans ce cas 32 ...[=SI($AH$2>32;INDEX(col_clr;1+32);"")].
    Je l'ai réalisée pour l'ensemble du fichier en plus de la mise en forme de couleur.
    Votre fichier : https://www.cjoint.com/?3IbrVbKo3iu

    0
    1. Bonsoir,

      Ah d'accord ! je comprends mieux maintenant !
      Merci beaucoup !
      0
  2. Bonjour !

    Merci beaucoup !
    0
    1. Bonjour,
      Oui je vais regarder votre fichier mais pas de suite, patience.
      Petite précision : vous faites référence au classeur [Stridou_ccm_fiche_automatique_v02.1.xlsm] et l'ajout depuis la ligne 85 à 279 Oui / Non .... ?

      Salutations.
      Le Pingou
      0
      1. oui absolument !
        J'ai décidé d'agrandir pour les cas ou j'ai plus de 10 CLR : au maximum, je peux avoir 40 CLR (même si cela est rare). Si les cases sont déjà dans le fichier avec les formules, ce sera plus simple. dans tous les autres cas où il y aura moins de 40CLR, je supprimerai les cases en trop.(ce qui me permettra d'imprimer uniquement les cases remplies)
        0
      2. (car les cases ne s'incrémentent pas au fur et à mesure qu'un CLR s'ajoute)
        0
    2. Bonjour,

      Après plusieurs tests sur le nouveau fichier, je me suis rendu compte que je devais ajouter des cases.
      J'ai donc copié les formules, mais mon problème des 0 et des #REF! qui s'affichent revient.
      Le problème a été résolu plus haut, mais le fichier n'existe plus et je n'arrive pas à repérer l'action qui a été effectuée.
      Que dois-je modifier ?
      Pouvez-vous m'aider une nouvelle fois?!

      Voici un visuel

      https://www.cjoint.com/?0IbpxQe8NGi

      Merci beaucoup !
      0
      1. Bonjour,

        Je fais des tests sur le fichier, et il marche très bien ! c'est vraiment super ! Merci beaucoup de votre aide !
        0
        1. Merci Stridou, content pour vous.
          Salutations.
          Le Pingou
          0
      2. Bonjour,
        Alors restons comme cela.
        Je confirmes la formule en [G7] : =NB.SI(AA:AA;G6)
        par contre [S31] est vide (formule à supprimer).
        0
        1. Bonjour,

          Je suis désolée, il semblerait que je reçoive vos messages en différés !
          Je parlais de la case G7 et S31 pour le changement de formule.

          Je ne fais pas de copie valeur car je suis amenée à modifier la fiche régulièrement et donc c'est plus simple pour moi !

          Sinon je peux éventuellement bloquer les cellules lorsque le fichier est en lecture seule ? De ce fait, il ne pourra pas y avoir de bug hormis si c'est moi qui le créé ! (quand je serais hors lecture seule!)
          0
          1. Bonjour,
            Oui c'est bien en [G7] de plus la [S31] peut être supprimé sans autre (c'était un test pour moi )

            0
            1. Bonjour,

              Vous voulez parler de la case G7 non ? j'ai également changé la formule de la case S31 c'est bon aussi ?
              0
              1. Bonjour,
                Merci pour l'information.
                Je suppose que vous avez modifié la formule en [G6] et que c'est bon maintenant... !
                Petite remarque, si vous enregistrez la feuille du classeur d'origine comme nouveau classeur vous avez la procédure et les fonctions qui le sont aussi. Ce qui veut dire que si la personne modifie la cellule [G6] le code va s'exécutera et provoquera une erreur. Essayez donc pour voir.
                Si ce n'est qu'une fiche consultable en lecture, pourquoi ne pas en faire une copie (uniquement les valeurs) et l'insérer dans un classeur à cet effet.

                0
                1. Bonjour,

                  Un code en G pourrait représenter une référence de stylo par exemple, qui aurait plusieurs tailles et plusieurs coloris. Et je crée une fiche par référence. Ce qui me permet d'avoir une sorte de fiche récapitulative des déclinaisons de chaque référence. Cette fiche peut être ouverte par d'autres personnes seulement en lecture seule.

                  Sur mes images je n'ai pas encore changé le nom du fichier. C'était un exemple pour vous montrer les réactions du fichier.

                  Merci !
                  0
                  1. Bonjour,
                    J'ai compris ou le chat à mal à la patte : merci de remplacer la formule en [G6] :
                    =NB.SI('C:\.....\....\.....\[Stridou_ccm_extraction.xlsm]Feuil1'!$A:$A;G6)
                    Par celle-ci
                    =NB.SI(AA:AA;G6)
                    Le problème avait-été corrigé dans la version [Stridou_ccm_automatique_v03], j'ai oublié de vous le signaler.

                    0
                    1. Bonjour,
                      Merci pour le message.
                      Le message précédent:
                      Ce qui ressort de votre extrait d'mage correspond toujours au même classeur [Stridou_ccm_automatique_v02] ce qui est différent de : j'enregistre un fichier à son nom (exemple fichier27893, fichier 37777 ...).
                      Concerne : Pour chaque code en G, j'enregistre un fichier à son nom (exemple fichier27893, fichier 37777 ...).
                      Pour quel raison .... En avez-vous besoin comme archive ou c'est juste pour ne pas ouvrir le fichier [Extraction] !

                      0
                      1. Bonjour,

                        J'ai mis en texte et tout est rentré dans l'ordre !
                        Merci !
                        0
                        1. Bonjour,

                          Pour chaque code en G, j'enregistre un fichier à son nom (exemple fichier27893, fichier 37777 ...).
                          Ces fichiers peuvent être consultés sans ouverture du fichier extraction.
                          Voici un aperçu de ce qu'il se passe
                          image1 : fichier avant fermeture
                          image 2 : fichier à la réouverture
                          image 3 : fichier après mise à jour

                          https://www.cjoint.com/?0Hfkq5bdioQ
                          0
                          1. Bonjour,
                            Concernant le problème [CLR] merci de mettre le format [Texte] pour les colonnes [AE] et [AG] et tout va rentrer dans l'ordre

                            Pour l'autre problème j'attend le fichier...!
                            0
                            1. Bonjour,
                              Eh bien c'est ce que je pensais ; vous avez des nombres sous forme texte dans la colonne [CLR] et comme dans votre exemple il n'y a que des nombres, je l'ai traité de la même manière pour [RCF:CLR sans doublon] donc un format nombre.
                              Dite-moi ce qui est juste pour vous [CLR] comme texte ou nombre (contrôler une fois ce que vous pouvez avoir dans la colonne correspondante du classeur [Extraction...]) ...... !
                              Concernant le deuxième problème : je vois quand [G6] il y a la valeur 27893 et après fermeture et réouverture il y a 37777 ce qui est faut il devrait avoir la même.
                              Pouvez-vous me faire parvenir ce fichier qui pose problème ?

                              0
                              1. Bonsoir,

                                Voici une copie écran

                                https://www.cjoint.com/?0HesWKsqyEa

                                J'ai repéré un problème au démarrage de ma feuille, je vous ai également fait une copie écran : Lorsque j'ouvre ma feuille et que je clique sur "activer le contenu" mes informations disparaissent. Est-il possible que, comme certaines de mes cases ayant une formule "recherchev", les cases se modifient uniquement si la valeur en G6 change ?

                                Merci !
                                0
                                1. Bonjour,
                                  Merci, content pour vous que cela fonctionne.
                                  Concernant l'exécution de la macro j'ai utilisé une procédure événementielle qui s'exécute chaque fois que l'événement Change se produit pour l'objet, dans notre cas il suffit d'entrer une valeur dans la cellule [G6] et la procédure se met en route automatiquement.
                                  La procédure se trouve sur le module de feuiille [Feuil1] : nommée [Private Sub Worksheet_Change(ByVal Target As Range)].

                                  Note : Pour le dernier message, pouvez-vous me transmettre une copie d'écran... ?

                                  Salutations.
                                  Le Pingou
                                  0
                                  1. Bonjour,

                                    En utilisant le nouveau fichier, il y a quelque chose que je ne comprends pas : pourquoi si dans liste selon choix_CLR il y a"00100" après dans RCF:CLR sans doublon_CLR il y a "100" et du coup dans mes cases jaunes aussi "100" ?
                                    0
                                    • 1
                                    • 2
                                    • 3