Zone de liste avec un filtre

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

troismonts

XLDnaute Nouveau
Bonjour

Dans un formulaire j'ai crée une liste déroulante qui me permet de faire un filtre sur des données, ces données je dois les récupérer et les mettre dans une combobox, mais j'ai plus de 9 colonnes à récupérer alors que
pour une source de données indépendante, il y a une limite de 10 colonnes (0 à 9).

Comment faire pour afficher plus de 9 colonnes, voici une partie du code
Sheets("Données").Select
Dim oplage As Range
Dim var, var1
Dim oligne As Object
Dim nchoix As Integer
With Worksheets("Données")
'.Unprotect (4270)
.UsedRange.AutoFilter
If DD.Value = "" Or DF.Value = "" Then GoTo sansdate
'Le champ field correspond à colonne que l'on veut filtrer
.UsedRange.AutoFilter field:=4, Criteria1:=Nom.Value
' A mettre en format anqlais pour calcul au format jj/mm/aaaa dans les cellules de la feuille
var = Format(DD.Value, "mm/dd/yyyy")
var1 = Format(DF.Value, "mm/dd/yyyy")
.UsedRange.AutoFilter field:=1, Criteria1:=">=" & var, Operator:=xlAnd _
, Criteria2:="<=" & var1
sansdate:
.UsedRange.AutoFilter field:=4, Criteria1:=Nom.Value



For Each oplage In Sheets("Données").Range("a1").CurrentRegion.SpecialCells(xlCellTypeVisible).Areas
For Each oligne In oplage.Rows

'Mettre 0 pour afficher les entetes de colonnes
If oligne.Row > 1 Then

choix.AddItem ""
choix.List(nchoix, 0) = oligne.Cells(1).Value
choix.List(nchoix, 1) = oligne.Cells(2).Value
choix.List(nchoix, 2) = oligne.Cells(3).Value
choix.List(nchoix, 3) = oligne.Cells(4).Value
choix.List(nchoix, 4) = oligne.Cells(5).Value
choix.List(nchoix, 5) = oligne.Cells(6).Value
choix.List(nchoix, 6) = oligne.Cells(7).Value
choix.List(nchoix, 7) = oligne.Cells(8).Value
choix.List(nchoix, 8) = oligne.Cells(9).Value
choix.List(nchoix, 9) = oligne.Cells(11).Value
nchoix = nchoix + 1

End If
Next
Next
Total.Value = choix.ListCount
Totalfinal.Value = Application.WorksheetFunction.CountA(Range("DATedeb"))
Pourcent = Total / Totalfinal
Pourcent = Format(Pourcent, "0.00%")

If choix.ListCount = 0 Then
MsgBox "Aucune donnée", 16, "INFORMATION"
'Unload Me
End If
With Worksheets("Données")
.UsedRange.AutoFilter
End With

Merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
237
Retour