Boucle VBA sur liste filtrée
Steph
-
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
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
A voir également:
- Boucle VBA sur liste filtrée
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Site dangereux liste - Guide
- Comment cacher sa liste d'amis sur facebook - Guide
2 réponses
Bonjour,
Essaie en mettant :
Daniel
Essaie en mettant :
tabnom = Sheets("Commandes_list").ListObjects("Tableau7").ListColumns("Vendor"). _ DataBodyRange.SpecialCells(xlCellTypeVisible)
Daniel
Steph
C'est parfait. Exactement ce que je cherchais. Un grand merci.