macro pour recherche est ce possible ?

breakers

XLDnaute Junior
Bonjour à tous ! ( pour les matinaux :) )


Je cherche une solution pour extraire de façon automatique des données de 2 listes et ensuite les redistribuer sur différents onglets.

exemple :

données dans onglet A et B

je recherche les valeurs d'une colonne (exemple colonne E) qui contiennent 010000 et 010010 dans la colonne H et ainsi de suite jusqu'à 370000 et 370010 et ce dans les 2 onglets.

ceci je pense est déjà une première étape.

dans la 2ieme étape je souhaite que les données collectées soit mise à la suite l'une de l'autre en fonction de la recherche dans l'onglet correspondant, c'est à dire pour les données trouvé avec le critère 010000 et 010010 qu'elles soient copiés dans l'onglet 01 puis 02 pour critère 020000 et 020010 et ainsi de suite....(là je dit chapeau si cela est possible....):confused:

cela devient dramatiquement compliqué.... j'ai bien tenté avec une recherchev, mais cela devient vite le foutoir et je n'arrive pas à associé la recherche dans les 2 onglets....

si l'un d'entre vous à un code ou un début de code avec si possible les explications du code ligne par ligne, cela m'aiderait grandement pour le comprendre et surtout pour le réutiliser intelligemment ( oui bon j'essaierais....):p

un grand merci d'avance à la ou les personnes de ce forum qui se pencheront sur mon cas.

PS : je ne peux pas fournir d'exemple car cela reviendrais à mettre un fichier avec 1,2,3 etc dans colonne E et les critères dans l'autre colonne car le reste est trop explicite donc malheureusement confidentiel.

merci encore
 

Misange

XLDnaute Barbatruc
Re : macro pour recherche est ce possible ?

Bonjour à tous ! ( pour les matinaux :) )

PS : je ne peux pas fournir d'exemple car cela reviendrais à mettre un fichier avec 1,2,3 etc dans colonne E et les critères dans l'autre colonne car le reste est trop explicite donc malheureusement confidentiel.

merci encore

Bonjour

Et donc c'est au demandeur de prendre la peine de construire un exemple bidon ?
Relis ton texte, toi même tu t'y perds dans ta question. Un fichier exemple, même bidon, qui reproduise exactement la STRUCTURE de tes données (et leur complexité éventuelle... simplifier c'est bien mais pas trop quand même) et surtout un fichier qui indique CE QUE TU SOUHAITES obtenir comme résultat c'est très utile.
 

breakers

XLDnaute Junior
Re : macro pour recherche est ce possible ?

voila il ne reste plus grand chose....

cela te suffit il ?

sinon j'essaierais de fournir en fonction car la taille bloque si je met plus encore dsl

edit : j'ai mis avec des données exploitables
 

Pièces jointes

  • exemple1.zip
    209.9 KB · Affichages: 23
  • exemple1.zip
    209.9 KB · Affichages: 24
  • exemple1.zip
    209.9 KB · Affichages: 22
Dernière édition:

breakers

XLDnaute Junior
Re : macro pour recherche est ce possible ?

Bonjour à tous !

je viens de finir le code pour la recherche, par contre je pense que l'on peut "optimiser" ce code, mais je ne sais pas comment faire.

je vous joint un extrait de ce code, qui se répéte x fois pour la recherche suivant mes critères.

si l'un d'entre vous sait comment le raccourcir, je suis preneur, mais surtout qu'il m'explique ce qu'il fait et pourquoi afin que je puisse en apprendre un peu plus et le reproduire plus tard :)

Code:
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
    Sheets("AL090").Select
    ActiveSheet.Range("$A$1:$M$2072").AutoFilter Field:=9, Criteria1:=Array( _
        "030000", "030010", "050000", "050010"), Operator:=xlFilterValues
    Worksheets("AL090").Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy Destination:=Worksheets("TG03").Range("a20").End(xlUp).Offset(1, 0)
    Sheets("AL010").Select
    Rows("1:1").Select
    Application.CutCopyMode = False
    Selection.AutoFilter
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 10
    ActiveWindow.ScrollColumn = 11
    ActiveWindow.ScrollColumn = 12
    ActiveWindow.ScrollColumn = 13
    ActiveWindow.ScrollColumn = 14
    ActiveSheet.Range("$A$1:$AK$12122").AutoFilter Field:=18, Criteria1:=Array( _
        "030000", "030010", "050000", "050010"), Operator:=xlFilterValues
    ActiveWindow.ScrollColumn = 13
    ActiveWindow.ScrollColumn = 12
    ActiveWindow.ScrollColumn = 11
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Worksheets("AL010").Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy Destination:=Worksheets("TG03").Range("a20").End(xlUp).Offset(1, 0)
    Sheets("Résultat").Select
    Range("A1:A3").Select
    ActiveWindow.ScrollWorkbookTabs Position:=xlLast
    Sheets("AL090").Select
    ActiveSheet.Range("$A$1:$M$2072").AutoFilter Field:=9, Criteria1:=Array( _
        "070000", "070010", "090000", "090010"), Operator:=xlFilterValues
    Worksheets("AL090").Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy Destination:=Worksheets("TG07").Range("a20").End(xlUp).Offset(1, 0)
    Sheets("AL010").Select
    Rows("1:1").Select
    Application.CutCopyMode = False
    Selection.AutoFilter
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 10
    ActiveWindow.ScrollColumn = 11
    ActiveWindow.ScrollColumn = 12
    ActiveWindow.ScrollColumn = 13
    ActiveWindow.ScrollColumn = 14
    ActiveSheet.Range("$A$1:$AK$12122").AutoFilter Field:=18, Criteria1:=Array( _
        "070000", "070010", "090000", "090010"), Operator:=xlFilterValues
    ActiveWindow.ScrollColumn = 13
    ActiveWindow.ScrollColumn = 12
    ActiveWindow.ScrollColumn = 11
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Worksheets("AL010").Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy Destination:=Worksheets("TG07").Range("a20").End(xlUp).Offset(1, 0)
    Sheets("Résultat").Select
    Range("A1:A3").Select
    ActiveWindow.ScrollWorkbookTabs Position:=xlLast
    Sheets("AL090").Select
    ActiveSheet.Range("$A$1:$M$2072").AutoFilter Field:=9, Criteria1:=Array( _
        "110000", "110010", "130000", "130010"), Operator:=xlFilterValues
    Worksheets("AL090").Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy Destination:=Worksheets("TG11").Range("a20").End(xlUp).Offset(1, 0)
    Sheets("AL010").Select
    Rows("1:1").Select
    Application.CutCopyMode = False
    Selection.AutoFilter
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 10
    ActiveWindow.ScrollColumn = 11
    ActiveWindow.ScrollColumn = 12
    ActiveWindow.ScrollColumn = 13
    ActiveWindow.ScrollColumn = 14
    ActiveSheet.Range("$A$1:$AK$12122").AutoFilter Field:=18, Criteria1:=Array( _
        "110000", "110010", "130000", "130010"), Operator:=xlFilterValues
    ActiveWindow.ScrollColumn = 13
    ActiveWindow.ScrollColumn = 12
    ActiveWindow.ScrollColumn = 11
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Worksheets("AL010").Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy Destination:=Worksheets("TG11").Range("a20").End(xlUp).Offset(1, 0)
    Sheets("Résultat").Select
    Range("A1:A3").Select

merci d'avance pour votre aide
 

Discussions similaires

Réponses
6
Affichages
373