Boucle VBA sur liste filtrée

Steph -  
 Steph -
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

  1. danielc0 Messages postés 2211 Date d'inscription   Statut Membre Dernière intervention   294
     
    Bonjour,

    Essaie en mettant :

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


    Daniel
    0
    1. Steph
       
      C'est parfait. Exactement ce que je cherchais. Un grand merci.
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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