Filtre, copier, coller

Bonjour,

Je vous adresse ce message puisque je galère complètement sur ce que je veux faire ..!

J'ai un fichier excel avec 3 feuilles.
Dans chacune de feuilles il y a un code groupe. (16 groupes) et d'autres variables !

Je dois :

- afficher dans une liste les 16 groupes (ça OK)

- mais lorsque je sélectionne un groupe, je dois afficher uniquement les informations pour ce groupe.. S'il y a 10 lignes dans le groupe 1, je dois afficher QUE les 10 lignes (il ne faut pas que ça soit un filtre normal qui lorsque je reclick su filtre, me fasse apparaître toutes les lignes à nouveau)

- copier le résultat du filtre dans un nouveau classeur de sorte que si je sélectionne le groupe 1 dans la liste, un classeur excel doit se créer avec les 3 feuilles avec les info du groupe 1..

Si vous avez des pistes pour m'aider ça serait vraiment sympa..

Cordialement,

Mateo

3 réponses

  1. Private Sub CommandButton2_Click()
    Dim groupe As Integer
    groupe = InputBox("groupe?")
    Range("B1").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$O$428").AutoFilter Field:=2, Criteria1:="groupe"
    Range("A1:O428").Select
    Range("B1").Activate
    Selection.Copy
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Paste
    End Sub

    Voici le début de mon compte, cependant quand je rentre le nom du groupe ça ne marche pas, mais si je remplace groupe par la valeur précise cela fonctionne.
    1. J'ai donc ensuite essayé d'automatiser avec une boucle, ça créer bien les 16 feuilles avec les noms de colonnes, mais pas les valeurs filtrées !!!

      Private Sub CommandButton3_Click()
      Dim i As Integer
      For i = 1 To 16
      Selection.AutoFilter
      ActiveSheet.Range("$A$1:$O$428").AutoFilter Field:=2, Criteria1:="100+i"
      Range("A1:O428").Select
      Range("B1").Activate
      Selection.Copy
      Sheets.Add After:=Sheets(Sheets.Count)
      ActiveSheet.Paste
      Sheets("Feuil6").Select
      Application.CutCopyMode = False
      Selection.AutoFilter
      Next
      End Sub

      Des suggestions ?
      1. Tu as testé le mode pas à pas avec les espions? Si tu ne connais pas tape sur google, ça aide énormément en vba.
      2. Oui ! mais je sais où est l'erreur ^^

        ActiveSheet.Range("$A$1:$O$428").AutoFilter Field:=2, Criteria1:="100+i"

        il reconnait pas le i, enfin, quand je fais for i = 1 to 2
        il va me créer deux feuilles, mais dans le filtre il ne prend pas en compte le i

        Je veux qu'il me créer une feuille pour le groupe 101 avec les valeurs du groupe
        Une autre pour le groupe 102
        etc..

        Mais lui ne créer que les feuilles sans prendre les valeurs !! Il comprend pas que 100+i = 101, 102, 103, ... 116
      3. écris "100" & i
      4. @Pierre1310Nop il veut pas ça fait toujours la même chose, feuille créer sans les valeurs

        j'ai essayé : ^

        "100" & i

        "100"&"i"

        "10&i"

        "10"&i

        "10" & "i"

        ça veut pas !
      5. "100" + i