Boucle VBA sur liste filtrée

Fermé
Steph - 18 janv. 2021 à 09:25
 Steph - 18 janv. 2021 à 11:59
Bonjour à tous,

J'ai besoin d'aide sur une chose qui vous paraitra probablement simple.
Sur Excel 2010.
je filtre un tableau et utilise la liste filtrée pour faire tourner une boucle. Le but étant de mettre un tableau à jour et de lancer une impression de chaque "résultat".
J'a donc un code qui:
1: filtre le tableau. Ok fonctionne
2: créé une boucle sur la liste du tableau. Ne fonctionne pas. La boucle utilise TOUTES les lignes du tableau et pas seulement les filtrées.
3: lance une impression de chaque résultat. Ok fonctionne
Voici le code:
------------------------------------------------------------
Sub boucleprint()
Sheets("Commandes_list").ListObjects("Tableau7").Range.AutoFilter Field:=82, Criteria1:=Sheets("Commandes").Range("i5").Value


Set dictnom = CreateObject("scripting.dictionary")

tabnom = Sheets("Commandes_list").ListObjects("Tableau7").ListColumns("Vendor").DataBodyRange

For i = LBound(tabnom) To UBound(tabnom)
If Not dictnom.exists(tabnom(i, 1)) Then
dictnom.Add tabnom(i, 1), 1
Worksheets("commandes").Range("B2") = tabnom(i, 1)
' print2
End If

Next i
End Sub
--------------------------------------------------------
Si vous pouviez me dire ce que je dois ajouter.... Je pense que c'est simple, mais mon niveau actuel me bloque.

Merci d'avance de votre aide.

Stéphane

2 réponses

danielc0 Messages postés 847 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 7 mai 2024 75
18 janv. 2021 à 11:39
Bonjour,

Essaie en mettant :

  tabnom = Sheets("Commandes_list").ListObjects("Tableau7").ListColumns("Vendor"). _
    DataBodyRange.SpecialCells(xlCellTypeVisible)


Daniel
0
C'est parfait. Exactement ce que je cherchais. Un grand merci.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié le 18 janv. 2021 à 11:47
bonjour,

a vue de nez
avant de tester l'entree dans le dictionary il faudrait tenir compte aussi de la valeur de "criteria" et peut-^tre ainsi se passer d'un filtre (surtout si tu as beaucoup de lignes)

0