VBA : Recopier une plage filtrée dans une Listbox de formulaire
Bonjour,
Exposé de mon problème:
Dans un même classeur, j'ai une feuille "Dossiers" (1 ligne / dossier) et une feuille "Audiences" (1 à n lignes / dossier) avec le n° de dossier en colonne 1
A partir de la feuille "Dossiers",
Je veux récupérer les lignes d'audiences filtrées sur le n° de dossier et les copier pour affichage afficher dans une listbox de mon Formulaire_Dossier
Pour tester ma procédure, je me place par exemple sur un dossier pour lequel je filtre bien les 3 audiences qui lui correspondent
J'ai utilisé plusieurs méthodes mais pas la bonne ... car mon formulaire n'affiche que la ligne titres de ma feuille Audiences et pas les lignes filtrées... (d'ailleurs le compteur iR qui devrait me donner le nb de lignes filtrées me donne toujours 1 ! alors que dans mon test il devrait afficher 4!)
Je ne comprend pas ce qui ne fonctionne pas.
Si quelqu'un peut m'indiquer la solution je le/la remercie d'avance.
Voici mon code :
----------------
Code:
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
| Sub Lister_Audiences_du_Dossier()
'
'-- Sélectionner les audiences du dossier
'
' Audiences_du_Dossier est une Range déclarée en 'Public' dans un autre module
Dim iR As Integer
Dim iC As Integer
Sheets("Dossiers").Select
No_Dossier = Range("A99").Value '---Pour tester un dossier avec 3 audiences
Nom_Feuille = "Audiences"
Nom_Base = "Base_Audiences"
Sheets(Nom_Feuille).Activate
ActiveSheet.Unprotect
Call Libérer_les_volets
Call Tri_Audiences_par_Dossier_Date_Heure_Audience
ActiveSheet.Range(Nom_Base).AutoFilter Field:=1, Criteria1:=No_Dossier
iR = Sheets(Nom_Feuille).Range(Nom_Base).SpecialCells(xlCellTypeVisible).Rows.Count
Set Audiences_du_Dossier = Sheets(Nom_Feuille).Range(Nom_Base).SpecialCells(xlCellTypeVisible)
'Dans le Formulaire_Dossier_Initialize : LB_Audiences = Audiences_du_Dossier.value (Copie dans la listbox du formulaire)
Formulaire_Dossier.Show
'-->Retour sur la feuille "Dossiers"
Sheets("Dossiers").Select
End Sub |