Copie colle lignes sous condition de plusieurs onglets

krostif -  
 krostif -
Bonjour à tous,
J'ai épluché plusieurs posts sur le sujet mais mon problème contient une particularité que je n'ai pas trouvée...

Je cherche à copier dans le premier onglet (search) les lignes de tous les onglets dont la colonne ANIM contient le mot clef renseigné dans la cellule MOT CLEF de la première feuille.

A titre d'exemple, dans le fichier joint : http://www.cjoint.com/c/GAgrDUHQrHP j'ai mis deux onglets tests (109 et 121) et j'ai rempli (en les copiant à la main) les lignes des onglets "episodes" contenant le mot clef DANSE.

Le but est que ceci se fasse automatiquement des que je renseigne le champs MOT CLEF de la première feuille...

merci d'avance pour vos eclaircissements :)

8 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    Quelle est ton expérience en VBA?
    0
  2. krostif
     
    En toute franchise : nulle

    Mes seules expériences consistent à adapter des petits scripts et ou macros dans des langages relativement simples d’accès pour quelqu'un de curieux dés lors que cela n'entre pas dans des notions de programmation trop complexes.

    actionscript / javascript / vba sont des languages qu'il m'est dejà arrivé de "manipuler" donc. Mais sans réelle connaissance...
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      Alors, si tu veux apprendre, il vaut mieux commencer par des exercices plus simples.
      0
      1. krostif > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        toujours en toute franchise je ne cherche pas a apprendre mais à faire. Par necessité et non uniquement par plaisir (même si cela à toujours été pour moi un plaisir d'explorer des terrains inconnus). Disons que j'apprend en marchant comme on dit. Mais si tu penses que c'est de l'ordre de l'inabordable tu peux me le dire franchement.
        0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      merci pour ta franchise. je pense que ce n'est pas réaliste de te guider pour réaliser cela: il faut que quelqu'un le fasse pour toi.
      ce n’était pas clair au départ.
      0
      1. krostif > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Ok, je vais essayer d'adapter un script que j'ai trouvé et je reviendrai ici pour les problèmes que je vais immanquablement rencontrer alors.

        Merci
        0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour a vous deux,

    krostif

    votre fichier modifie
    entrez lettre pour affichage de toutes les anim qui commencent par la ou les lettres entrees
    entrez * pour toutes les anim

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

    Disons que j'apprends en marchant comme on dit
    Bonne marche
    0
  4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    Suggestion:
    Option Explicit
    
    Sub cherche()
    Dim ongletcible As Worksheet
    Dim ongletrecherche As Worksheet
    Dim lignecible As Long
    Dim critere As String
    Dim lignerecherche As Long
    
    Set ongletcible = ThisWorkbook.Sheets("SEARCH")
    lignecible = 6
    critere = ongletcible.Cells(2, 2)
    For Each ongletrecherche In ThisWorkbook.Sheets
        If ongletcible.Name <> ongletrecherche.Name Then
            lignerecherche = 3
            Do While ongletrecherche.Cells(lignerecherche, 4) <> ""
                If ongletrecherche.Cells(lignerecherche, 4) = critere Then
                    ongletrecherche.Rows(lignerecherche).Copy _
                        ongletcible.Rows(lignecible)
                    lignecible = lignecible + 1
                End If
                lignerecherche = lignerecherche + 1
            Loop 'Do While recherche.Cells(lignerecherche, 3) <> ""
        End If
    Next ongletrecherche
    End Sub
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. krostif
     
    Merci yg_be

    Bon si je crée une macro et que j'intègre ce code sous libreoffice j'ai une erreur de synthaxe sur le mot Worksheet dés que je la lance...
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      C'est un code VBA pour Microsoft Office.
      0
      1. krostif > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        hehe je m'en doutais un peu ^^
        0
  7. krostif
     
    @ f894009

    Merci pour ce fichier qui fonctionne à peu près comme je l'imaginais :)

    J'ai juste quelques petits problèmes :

    Lorsque je rentre un mot clef c'est la ligne du dessus qui est reportée dans la feuille search.

    Là j'avais simplifié pour l'exemple mais j'ai des colonnes de données en plus à rajouter (en gros deux fois plus).
    J'ai étudié la macro pour voir comment cela fonctionnait (et j'avoue essayer de régler le premier problème mais je n'y suis pas arrivé ! Il me faudra encore marcher ! Et surement un bon moment ^^ ) En revanche, je sais qu'il existe des fonctions de copie de la ligne entière. Ne serait-il pas mieux d'utiliser ceci plutot que d'en recopier chaque champ ?... Cela me permettrait d'ajouter autant de colonne de données que necessaire sans avoir à modifier la macro...

    Lorsque je vide le champs "search" il ne se passe rien. Il faut mettre un espace pour que les lignes se vident (ça à la rigueur ce n'est pas très grave) Mais l'idéal serait que lorsque je vide ce champs, la liste se "nettoie" en quelque sorte.

    Ci-joint le fichier que j'ai tenté de customiser ^^

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

    En tout cas merci pour ce code très proche de ce que je cherche à obtenir :)

    Je vais reprendre ma marche ;)

    Et merci à tous pour vos interventions
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Lorsque je rentre un mot clef c'est la ligne du dessus
      Ah Bon !!

      En revanche, je sais qu'il existe des fonctions de copie de la ligne entière.
      Oui, mais pour faire de la recherche en auto bonjour, sauf si vous avez tres peu de feuille avec tres peu de lignes.
      Recherchez la derniere colonne utilisee

      Lorsque je vide le champs "search" il ne se passe rien
      Ben oui, je ne peux pas deviner ce que vous voulez faire

      Pourquoi le premier fichier est de l'Excel et le deuxieme de l'Open Office, pouviez pas faire bon du premier coup ?

      Peux rien faire de votre fichier ods
      0
      1. krostif > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         

        Lorsque je rentre un mot clef c'est la ligne du dessus...
        Ah Bon !!


        Oui je confirme

        Lorsque je vide le champs "search" il ne se passe rien
        Ben oui, je ne peux pas deviner ce que vous voulez faire


        Pardon de cette remarque qui semble vous choquer vu la nature de la réponse. Pour moi je me représentais basiquement la chose de cette façon : si le champs est vide, alors les lignes ne sont pas remplies. Mais je comprend que c'est beaucoup plus complexe que cette simple réflexion à la logique humaine très éloignée de la logique de programmation.

        Pourquoi le premier fichier est de l'Excel et le deuxieme de l'Open Office, pouviez pas faire bon du premier coup ?
        Le premier fichier exemple était déjà un fichier ods sauf que je l'avais enregistré en xlsx pour - croyais-je - plus de compatibilité. Visiblement ce n'était pas une bonne idée mais ça ne partait pas d'une mauvaise intention de ma part.

        Peux rien faire de votre fichier ods

        Pas de problème vous en avez déjà fait beaucoup et je vous en remercie

        Cordialement

        Ci joint un export xlsx : http://www.cjoint.com/c/GAhu3SDFbLy
        0
      2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > krostif
         
        Bonjour,

        Pardon de cette remarque qui semble vous choquer
        Aucun choc, je vais toujours au plus direct avec plus ou moins de diplomatie et c'est en majorite avec plus que moins

        Lorsque je rentre un mot clef c'est la ligne du dessus qui est reportée dans la feuille search.
        Avec quel fichier: xlsm ou ods de votre cru

        Vous voulez que ce soit fait en OpenOffice? Pourquoi et pourquoi pas, puisque vous avez EXCEL
        0
      3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        Re,

        krostif:
        Normal les lignes vides dans feuilles 138 et >178 entre les Anim, ca complique un peu

        en attendant fichier excel avec lignes et colonnes polymorphe (mais avec ligne vides)
        https://www.cjoint.com/c/GAijsFPQxwf
        0
  8. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Fichier avec feuille SEARCH code avec tableaux pour recuperer les Infos et feuille SEARCH_1 code avec copie de lignes entieres pour les infos a recuperer, vous pourrez constater laquelle des deux programmation est la plus rapide en execution

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

    A+
    0
  9. krostif
     
    @f894009

    ce dernier fichier semble coller parfaitement à ma demande. Je vais le tester en situation réelle (en rajoutant des onglets et des lignes et en améliorant la lisibilité des infos à traiter) mais à priori cela me semble impeccable.

    Un grand merci à toi. Je te ferais un retour sur la finalité de son utilisation et sois assuré que je laisserai l'indication de la source de ce tableur à l'intérieur même si à priori cela restera un travail en interne.

    Plus globalement merci à tous ceux qui ont amené leur contribution à ce sujet.

    On m'a promis un kilos de M&M's si je trouvais une solution à ce problème. J'aurais du mal à les partager avec vous pour vous en faire profiter mais le coeur y sera ^^
    0