Vba excel affichage d'un sheet fitre userform
gomido
Messages postés
4
Statut
Membre
-
Mytå Messages postés 4246 Date d'inscription Statut Contributeur Dernière intervention -
Mytå Messages postés 4246 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai fais un filtre de donnees dans un worksheet et je fais affichagé dans un listbox via un userform ,
le worksheet est bien filtré mais quand il affiche le listbox ne filtre n'expas appliqué
bref, mon problème est de rechercher des données dans un worksheet et l'afficher dans un userform pour que l'utilisateur puisse sélectionner la donné désirées.
j'ai fais un filtre de donnees dans un worksheet et je fais affichagé dans un listbox via un userform ,
le worksheet est bien filtré mais quand il affiche le listbox ne filtre n'expas appliqué
bref, mon problème est de rechercher des données dans un worksheet et l'afficher dans un userform pour que l'utilisateur puisse sélectionner la donné désirées.
3 réponses
-
Salut le forum
Pour remplir une ListBox multi-colonnes avec une plage filtréePrivate Sub UserForm_Initialize() Dim Cel As Range, Cpt As Integer Cpt = 0 For Each Cel In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible) Me.ListBox1.AddItem Me.ListBox1.List(Cpt, 0) = Cel ' 1ere colonne Me.ListBox1.List(Cpt, 1) = Cel.Offset(, 1) ' 2eme colonne Cpt = Cpt + 1 Next Cel End Sub
Mytå
Quelle prétention de prétendre que l'informatique est récente
Adam et Eve avaient déjà un Apple ! [MsProject 2003(FR), Excel 2003-2007(FR)] -
Bonjour,
Pour l'exemple, j'ai utilisé l'événement Initialize de l'Userform, mais tu peux metttre le code dans un bouton ou tout autre événement :Private Sub UserForm_Initialize() Dim Wsh As Worksheet, lig As Long, drlig As Long, Crit Crit = "X" '---> A ADAPTER = ton critère Set Wsh = Sheets("Feuil1") '---> A ADAPTER = Nom de ta feuille With Wsh drlig = .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row For lig = 2 To drlig '---> A ADAPTER : F = colonne à filtrer contenant ou pas le critère Crit, 'C = colonne contenant les données à transférer dans la listbox If .Range("F" & lig).Value = Crit Then ListBox1.AddItem .Range("C" & lig).Value Next End With Set Wsh = Nothing End Sub
-
Bonsoir,
j ai vu ta reponse
la ligne:drlig = .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
ne fonctionne pas ,j ai un message incompatibilité de type
donc j ai du faire ceci:
set drlig = .Columns(1).Find("*",lookin:=xlvalues ,lookat:=xlpart ,searchOder:=xlByColumns)
au fait la ligne listbox1.additem(sheet17.range("A"&lig).value me donne qu'une colonne ce qui est normale comment faire pour avoir toute les colonnes affiché?
merci pour tous