Formule pour rechercher et transporter

Résolu
Bonjour,

Je recherche une formule qui recherche des données et qui les transporte sur un autre classeur.

Par exemple ( À noter que la liste est en constante évolution a cause du Macro d'enregistrement.Donc si Gérard est A2, si il y a d'autre données qui sont ajoutées, il va tomber A3)

A / B / C

Nom / État / Age

2 Gérard / Locataire / 67 ans
3 Stéphanie / propriétaire / 30 ans
4 Gille / propriétaire / 30 ans
etc...

Je veux que les données des propriétaires soient transportées dans un classeur B et que les locataires dans le classeur C. Je veux que les données suivent aussi ( nom et age )

Qu'est-ce que je dois utiliser?

Merci

10 réponses

Résumé de la discussion

La discussion porte sur une solution Excel permettant d’extraire des données d’une liste évolutive et de les transférer vers deux classeurs distincts selon le statut, propriétaires ou locataires, tout en conservant le nom et l’âge. Des approches basées sur des macros VBA et des formules sont discutées, avec des scripts qui créent des feuilles dédiées et répartissent les données dans les classeurs cibles. Plusieurs participants évoquent des difficultés comme la perte de données lors du tri et la création d’onglets supplémentaires, proposant des solutions d’insertion dynamique et de tri par prénom. En dernier lieu, la discussion suggère de documenter le flux et d’anticiper l’ajout de données pour assurer une synchronisation fiable entre les classeurs.

Bobot (l’IA à votre service)
  1. Bonjour,

    Dans ces cas la, on joint un fichier .....

    https://www.cjoint.com/c/FCFkfUiSteD

    Crdmt
    0
    1. Salut

      Je viens de voir ton fichier.

      Ce que j'ai besoin c'est que si je rajoute un locataire, il faux que les données du nouveaux soit transférer dans locataire et automatiquement.

      Merci
      0
  2. Bonjour

    Avec un fichier cela serait plus facile de vous aider

    Voir la fonction EQUIV ()

    le résultat est le numéro de ligne par rapport au début de la liste, il faut apporter une correction si vous ne partez pas du haut de la feuille en mettant à la suite de la fonction + la valeur du nombre de ligne au-dessus de la liste.
    Puis utiliser la fonction ADRESSE pour définir la ligne avec EQUIV; colonne compter par rapport à la colonne A;choisir les autres paramètres, et finir avec le mon du fichier entre "guillemets"
    regarder le résultat vous avez une adresse de cellule dans le fichier.
    Utiliser la fonction INDIRECT() qui viens encadrer la fonction adresse, après la parenthèse de fermeture mettre ;1)
    La cellule affiche le contenu de la cellule se trouvant dans l'autre classeur

    exemple de formule

    =INDIRECT(ADRESSE(EQUIV(Q4;$Q$4:$Q$15;0)+6;21;3;1;"feuil2");1)

    C'est en forgeant que l'on devient forgeron. -  C'est au pied du mur que l'on voit le maçon - on apprend toujours de ses erreurs
    0
    1. Bonjour merci

      Je vais essayer et te revenir
      0
    2. @sebast4488Bonjour

      Je joint le fichier (Nommé) TEST

      https://www.cjoint.com/c/FDcsWdvuWUH

      Dans l'exemple du fichier, j'ai mis un fichier pour saisir les données.
      Avec la Macro, les fichiers s'enregistrent dans le tableau.

      J'ai deux autres feuilles nommées Catherine et Jérôme

      J'aimerais que les données de Catherine se transportent dans Catherine et Jérôme dans Jérôme.

      Donc a chaque enregistrement, les données sont transportées automatiquement.

      Merci
      0
  3. Bonjour sebast4488

    Votre fichier modifié

    http://www.cjoint.com/c/FDdiQHpsZJx
    0
    1. Bonjour Philou

      Il y a un problème.

      Si je rentre par exemple

      Catherine mais avec d'autres types de données.

      Catherine Houle DPA 3456

      Dans les tableaux, les anciennes données disparaisses et même pour Jérôme, ya plus rien??

      Merci
      0
      1. Bonjour

        Le fichier doit être trié sur la colonne des prénoms

        et si vous pouviez mettre le fichier, je pourrais voir ce qui se passe?
        0
    2. Bonjour

      Le fichier modifié

      http://www.cjoint.com/c/FDeg03TCrbx
      0
      1. Bonjour

        https://www.cjoint.com/c/FDfjXmMSalH

        J'ai des problèmes quand je rentre plusieurs Catherine, mes données antérieures s’efface.
        Aussi j'ai voulu entrer d'autre Jérôme et des Catherine ont été transporter dans Jérôme.

        Merci
        0
      2. @sebast4488le fichier modifié

        http://www.cjoint.com/c/FDfku3TeV0x
        0
    3. Contributeur
      Bonjour

      Ci joint proposition pas macro

      L'inscription dans la feuille "tableau" et dans la feuille "nom" se fait à la volée en partant d'une liste vide
      Si ca te convient, on pourra alors tester si le nom existe déjà et sinon on créera la feuille
      http://www.cjoint.com/c/FDehlAmYdJt

      le code proposé (module1)
      Option Explicit
      '------------------------
      Sub incorporer()
      Dim Nom As String, prenom As String, Societe As String, Adresse

      Application.ScreenUpdating = False
      With Sheets("saisie")
      Nom = .Range("C3")
      prenom = .Range("C5")
      Societe = .Range("C7")
      Adresse = .Range("C9")
      End With
      With Sheets("Tableau ")
      .Rows(2).Insert
      .Range("A2") = Nom
      .Range("B2") = prenom
      .Range("C2") = Societe
      .Range("D2") = Adresse
      End With

      repartir Nom, prenom, Societe, Adresse
      End Sub
      '--------------------------------------
      Sub repartir(Nom, prenom, Societe, Adresse)

      With Sheets(Nom)
      .Rows(2).Insert
      .Range("A2") = Nom
      .Range("B2") = prenom
      .Range("C2") = Societe
      .Range("D2") = Adresse
      End With
      End Sub


      remarque: pourquoi inserer une ligne2 plutôt que d'aller à la 1° ligne vide ?
      0
      1. Bonjour

        Quel serait cette manière, cela m’intéresse aussi?

        Je suis pas alaise avec les codes de programmation, est-ce que tu pourrais l'inclure dans le fichier test (2)?

        https://www.cjoint.com/c/FDfjXmMSalH

        Merci
        0
    4. Contributeur
      bonjour,

      la macro est dans le module1
      pour accéder aux codes alt+F11

      http://www.cjoint.com/c/FDflTOtLHUt

      il est anormal que tes formules indiquées dans les feuilles Catherine et Jérôme soient cotées #NA; tu dois toujours prendre en compte la possibilité d'une erreur...
      Comme il est certain que tu n'auras pas que ces 2 noms, le passage par macro évite d'avoir à copier-coller bêtement sur chaque nouveau nom

      mais malheureusement, ma proposition de prendre en compte par macro le ou les nouveaux noms ne semble pas t'avoir intéressé, je n'ai pas rectifié le code
      0
      1. Bonjour

        Le fichier avec la macro de michel_m indéxé au bouton enregistrer

        http://www.cjoint.com/c/FDfopxYQhsx

        0
        1. Contributeur
          Philou:
          j'avais marqué
          la macro est dans le module1
          pour accéder aux codes alt+F11


          DE QUOI JE ME MELE !!!
          --
           Michel
          0
          1. Bonjour Michel_m

            De rien, je suis sur ce problème depuis le début et j'essaye de comprend le demandeur qui a du mal à nous poser les bonnes questions
            Mais si je dérange je te laisse la place
            Merci de ton aide
            0
          2. Salut Philou et Michel

            Merci du temps que vous passez pour ma demande

            Exact j'ai de la misère pour trouver les bons mots pour m'exprimer.

            Dans le fond

            J'ai un onglet 1 ( saisie de données )
            Je veux entrée des données dans l'onglet saisie de donnée et je veux que les données soit automatiquement rediriger vers un tableau.dans onglet 2.
            Ensuite je veux que des les données soient rediriger vers leurs onglets respectifs
            Par exemple onglet Catherine et onglet Jerome .

            Ensuite je veux que chaque nouvelles données pour catherine et jerome soient insérer dans leurs tableaux.

            Je veux que les données restent dans les onglets respectifs, et que d'autres se rajoutent
            pour chaque nouvelle entrée de donnée.

            La macro n'est pas obligatoire, c'est la facon que je connait pour enregistrer l'entrée de donnée.

            Merci
            0
        2. Contributeur
          bonjour

          ci joint classeur avec prise en compte de nouveaux noms

          http://www.cjoint.com/c/FDgg63CaqPt
          0
          1. Merci pour ton aide
            0
          2. Contributeur
            @PHILOU10120C'est sebast que j'essaie d'aider.

            toujours ton syndrome de la mouche du coche
            0
          3. Parfait

            Ça marche

            Pour mieux comprendre comment as tu fait? Et comment l'appliquer surtout.

            Est-ce du codage ou des formules d'excel que tu utilises?

            J'aimerais le comprendre, car la prochaine étape est de transporter certaine données dans un autre classeur et non un autre onglet.

            Merci
            0
          4. Contributeur
            @sebast4488ici,c'est uniquement du codage VBA

            maiis il arrive que l'on utilise des formules quand ca nous simplifie la vie
            par ex: on veut savoir combien il y a de "Toto" dans la colonne A
            Nbre= application.countif(columns("A"),"toto")
            qui est la formule Excel(en anglais) de NB.SI

            j'essaierai de le commenter en fin d'aprèm...
            Mais pourquoi n'avoir pas précisé "dans un autre classeur" dès le départ?
            ainsi, je passe du temps pour rien.....
            0
          5. @michel_mJe voulais l'option pour des onglets et je vais l'utilisé

            Pour le classeur c'était seulement savoir si c'était une possibilité sans codage, mais avec des formule?

            Tu m'as beaucoup aider. je vais étudier ton codage pour l'apprendre pour pouvoir l'utiliser.

            Merci
            0