Bonjour à tous, je programme un peu sur vba et je suis maintenant rendu à comprendre que des boucles existe pour arriver à éviter d'avoir 65776 lignes de code dans une macro.

Mon problème est que je dois remplir un tableau de 12 lignes par 10 colonnes automatiquement. Les lignes de ce tableau sont les 12 mois de l'année et les colonnes sont les numéros de PO. Il y a 5 numéros de PO et chaque numéro est divisé en 2 catégories (YTD spent et YTD remains).

J'aimerais être capable de remplir ce tableau en écrivant une boucle. Cependant je ne sais pas laquelle utilisée(for, while, loop, if). Je ne sais pas non-plus comment écrire une boucle.

Donc, pour résumé j'ai 3 filtres les mois, les numéros de PO et les 2 catégories. J'ai également 60 cellules à remplir (12 mois fois 5 colonnes).

Toutes mes informations sont dans un tableur et je voudrais les copier/coller dans un autre tableur pour ensuite sommé mes info et prendre cette somme pour la mettre dans mon tableau à remplir

Si vous pouvez m'aider à m'initier aux boucles se serait très appréciez. Désolé mais je n'ai pas de bout de code pour le moment car je ne sais juste pas comment faire.

Pour ajouter une aide ici, j'ai trouvé la séquence que j'aimerais exécuter.

1. Filtrer l'année 2012
2. Filtrer le numéro de PO
3. Filtrer les mois
4. Copier la colonne I
5. Coller les résultats dans un autre tableur (je dois coller sur une colonne différente à chaque fois puisque j'effectue un sommation sur la colonne)
6. Re-filtrer un autre mois jusqu'à ce que j'aie terminé tous les mois
7. Je change de numéro de PO
Je recommence les étapes 3-4-5-6 jusqu'à ce que j'aie terminer tous les numéros de PO

J'espère que c'est assez clair pour tout le monde.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim po As Integer
po = 5 'J' ai 5 numéro de PO au total...éventuellement plus
 
Dim month As Integer
month = 12 'Il y a 12 mois dans une année
 
For i = 1 To 5
        If i < po Then
        Selection.AutoFilter Field:=6, Criteria1:="=i", Operator:=xlAnd 'J'essaie de mettre le critère égal à i
                                                                        'puisque ça vaut mon numéro de PO
            While month <= 12
            Selection.AutoFilter Field:=15, Criteria1:="=month", Operator:=xlAnd
            'Ici je voudrais être en mesure de copier la colonne M et la coller dns l'autre tableur, faire la somme des cellules
            'ensuite effectuer la somme dans mon tableau à remplir
            month = month + 1
            Wend
 
        End If
Next

Voici un bout de code pour essayer de vous faire comprendre ce que j'essaie de mettre en place.