Bonjour à tous,
Petit nouveau sur ce forum et en VBA, j'ai tenté une 1er expérience et ça m'a permis de faire un bon de géant. Vraiment super.
Je reviens à la charge avec un autre bout de code qui me bloque. C'est ma 1er boucle que je fais, et je n'arrive pas à trouver le problème. C'est une boucle que j'aimerais qui me réalise la chose suivante:
1 - Choisir deux critère dans la feuil 1, le mois en en ligne 12 avec colonne incrémenté de i +1, et l'année en ligne 11 avec la même incrémentation.
2 - Appliquer le filtre sur les données en feuil2
3 - Recueillir la valeur max des données filtrées
4 - Mettre le résultat en feuil 1 à la ligne 53 avec colonne incrémenté i+1
Recommencer la procédure de i = 2 à 14...
Voici le code. C'est certainement pas le plus beau en ville, mais je commence tranquillement à mieux comprendre le code...
Merci d'avance pour votre aide!!
** Note, le code marche num. 1 sans la boucle...
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Sub max_baseUS_offre_2() 'Met à jour la valeur max des bases $US des offres reçus Dim Max As Double Dim i As Integer For i = 2 To 14 'Premier critère de filtre par mois en colonne 17 dans enregistrement Worksheets("Enregistrements").Range("$A$3:$AB$17").AutoFilter Field:=17, _ Criteria1:=ActiveSheet.cell(12, i).Value, VisibleDropDown:=False 'Deuxième critère de filtre par annee en colonne 19 dans enregistrement Worksheets("Enregistrements").Range("$A$3:$AB$17").AutoFilter Field:=19, _ Criteria1:=ActiveSheet.cell(11, i).Value, VisibleDropDown:=False 'Déterminer la valeur maximum de la plage obtenu Max = WorksheetFunction.Max(Sheets("Enregistrements").Range("h4:h1048572").SpecialCells(xlCellTypeVisible)) 'Placer le résultat à la bonne place dans le feuille active ActiveSheet.Range.Cells(53, i) = Max 'Désactiver le filtre dans enregistrement Worksheets("Enregistrements").AutoFilterMode = False Next i Do While i < 14 i = i + 1 Loop End Sub
Partager