Bonjour à tous,
Après plusieurs années sans utiliser VBA, j'ai décidé de m'y remettre recemment et je m'apercois qu'il ne me reste pas grand chose ...
Voici mon besoin.
Des tests sont réalisés quotidiennement et les résultats sont ajoutés dans un tableau sur une feuille excel (cf document joint)
Pour chaque test, en plus des résultats (Force et Ecart), des informations supplémentaire sur le test sont rentrés dans le tableau.
J'ai donc un tableau avec un nombre de colonne fixe, 8, mais un nombre de ligne variable étant donné que le tableau est complété chaque jour avec de nouvelles valeurs.
Parmis les informations ajoutées, se trouve un numéro de ligne allant de 1 à 8. Je cherche à extraire pour chaque ligne, le tableau correspondant sur une nouvelle feuille.
Aprés lecture de plusieurs tutoriels, la fonction Advancedfiltrer semble tout indiquée. Elle fonctionne parfaitement en direct sur mon tableau. Mais je n'arrive pas à l'utiliser sur le tableau variable créer pour stocker mes données !
Voici ma macro:
Excel me renvoi un code d'erreur "Qualificateur incorrect" pour la ligne "tab_exemple().AdvancedFilter ... "
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 Sub test() Dim Derlig As Long Dim tab_exemple() Dim i As Integer 'Calcul de la dernière ligne sur la colonne Decay Derlig = Worksheets(1).Range("I4").End(xlDown).Row 'Dimensionnement du tableau de (Derlig -2) lignes et (9-1) colonnes ReDim tab_exemple(Derlig - 1, 8) 'Enregistrement des résultats dans le tableau For i = 0 To UBound(tab_exemple) tab_exemple(i, 0) = Range("A" & i + 1) tab_exemple(i, 1) = Range("B" & i + 1) tab_exemple(i, 2) = Range("C" & i + 1) tab_exemple(i, 3) = Range("D" & i + 1) tab_exemple(i, 4) = Range("E" & i + 1) tab_exemple(i, 5) = Range("F" & i + 1) tab_exemple(i, 6) = Range("G" & i + 1) tab_exemple(i, 7) = Range("H" & i + 1) tab_exemple(i, 8) = Range("I" & i + 1) Next 'Tri avec filtre avancé tab_exemple().AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("M1:M2"), CopyToRange:=Range("M3"), Unique:=False End Sub
Comme vous le voyez, j'en suis encore au premier essai en effectuant un tri en fonction d'un seul critère et en mettant le tableau sur la même page. J'avais penser par la suite, mettre chaque nouveau tableau dans des tableaux virtuels (8) puis les coller sur des nouvelles feuilles.
Merci pour votre aide,
Classeur1.xlsm
Partager