Formule pour rechercher et transporter

Résolu
sebast4488 Messages postés 18 Statut Membre -  
sebast4488 Messages postés 18 Statut Membre -
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

  1. DjiDji59430 Messages postés 4280 Date d'inscription   Statut Membre Dernière intervention   718
     
    Bonjour,

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

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

    Crdmt
    0
    1. sebast4488 Messages postés 18 Statut Membre
       
      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. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    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. sebast4488 Messages postés 18 Statut Membre
       
      Bonjour merci

      Je vais essayer et te revenir
      0
      1. sebast4488 Messages postés 18 Statut Membre > sebast4488 Messages postés 18 Statut Membre
         
        Bonjour

        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. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    Bonjour sebast4488

    Votre fichier modifié

    http://www.cjoint.com/c/FDdiQHpsZJx
    0
  4. sebast4488 Messages postés 18 Statut Membre
     
    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. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    Bonjour

    Le fichier modifié

    http://www.cjoint.com/c/FDeg03TCrbx
    0
    1. sebast4488 Messages postés 18 Statut Membre
       
      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
      1. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835 > sebast4488 Messages postés 18 Statut Membre
         
        le fichier modifié

        http://www.cjoint.com/c/FDfku3TeV0x
        0
      2. sebast4488 Messages postés 18 Statut Membre > PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour

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

        J'ai encore des problèmes.

        Il inscrit dans catherine des jerome
        J'ai créer un stephane et il l'a mit dans catherine.

        Merci
        0
  7. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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. sebast4488 Messages postés 18 Statut Membre
       
      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
  8. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  9. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    Bonjour

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

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

    0
  10. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
       
      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. sebast4488 Messages postés 18 Statut Membre
       
      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
  11. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    bonjour

    ci joint classeur avec prise en compte de nouveaux noms

    http://www.cjoint.com/c/FDgg63CaqPt
    0
    1. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
       
      Merci pour ton aide
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention  
       
      C'est sebast que j'essaie d'aider.

      toujours ton syndrome de la mouche du coche
      0
    3. sebast4488 Messages postés 18 Statut Membre
       
      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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > sebast4488 Messages postés 18 Statut Membre
       
      ici,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. sebast4488 Messages postés 18 Statut Membre > michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Je 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