Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Zone de liste avec un filtre

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
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…