VBA filtre automatique
capucine
-
pag -
pag -
Bonjour,
Je souhaiterais utiliser le filtre automatique dans VBA.
J'ai créé une macro de filtrage, lorsque je suis dans le userform Henry (c'est pour un commercial), il y a une liste déroulante et je souhaiterais qu'on affiche dans cette liste que les clients de Henry et que tous ces clients n'aient pas souscrit à l'assurance santé. Je dois aller chercher ces données dans ma base de données (deux critères: que les clients de Henry et que ceux qui n'ont pas l'assurance santé (NON dans la colonne assurance santé)).
Quand on met la macro de filtrage dans la macro d'ouverture du userform, une erreur apparait. Peux t on rattacher cette macro au Row Source de la liste Box? Que dois-je mettre dans Row Source et quelle est ma macro de filtrage?
Voici notre macro de filtrage (avec erreur de débogage):
Sheets("Données").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:="NON"
Selection.AutoFilter Field:=10, Criteria1:="HENRY"
Sheets("Analyse").Select
Merci d'avance!
Je souhaiterais utiliser le filtre automatique dans VBA.
J'ai créé une macro de filtrage, lorsque je suis dans le userform Henry (c'est pour un commercial), il y a une liste déroulante et je souhaiterais qu'on affiche dans cette liste que les clients de Henry et que tous ces clients n'aient pas souscrit à l'assurance santé. Je dois aller chercher ces données dans ma base de données (deux critères: que les clients de Henry et que ceux qui n'ont pas l'assurance santé (NON dans la colonne assurance santé)).
Quand on met la macro de filtrage dans la macro d'ouverture du userform, une erreur apparait. Peux t on rattacher cette macro au Row Source de la liste Box? Que dois-je mettre dans Row Source et quelle est ma macro de filtrage?
Voici notre macro de filtrage (avec erreur de débogage):
Sheets("Données").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:="NON"
Selection.AutoFilter Field:=10, Criteria1:="HENRY"
Sheets("Analyse").Select
Merci d'avance!
A voir également:
- VBA filtre automatique
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Réponse automatique thunderbird - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Logiciel de sauvegarde automatique gratuit - Guide
- Filtre whatsapp - Accueil - Messagerie instantanée
3 réponses
Bonjour,
RowSource ne tient pas compte des lignes "cachées" il faut donc employer un autre moyen.
Bien sûr, adapter les adresses et nom feuille
Tu dis...
RowSource ne tient pas compte des lignes "cachées" il faut donc employer un autre moyen.
Private Sub UserForm_Initialize() Dim DerLig As Long, i As Long Sheets("Feuil1").Select DerLig = Range("A65536").End(xlUp).Row 'au cas ou un filtre serait déja actif. On Error Resume Next Selection.AutoFilter On Error GoTo 0 Range("A3").AutoFilter Selection.AutoFilter Field:=1, Criteria1:="NON" Selection.AutoFilter Field:=2, Criteria1:="Henry" ListBox1.Clear For i = 4 To DerLig If Not Rows(i).Hidden Then ListBox1.AddItem Cells(i, 1) Next i End Sub
Bien sûr, adapter les adresses et nom feuille
Tu dis...
Ca y'est ca marche pour les check box (plusieurs se cochent en meme temps,), en fait, j'avais mis des optionbox et il fallait mettre des checkbox!
Mon problème reste le filtrage, ca ne marche pas! en fait dans mon combobox, je souhaite mettre deux critères:
que les clients de RENE et que ceux qui n'ont pas l'assurance santé (dans base de données).
Dans ROWSOURCE, on a mis Données!A7:A47 (que les clients de RENE)
et dans le module 2 (module d'ouverture du userform2) on a mis:
Sub ouverture_userform2()
'Activer le UserForm nommé UserForm2
UserForm2.Show
'Filtrer les clients de René
Sheets("Données").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:="NON"
Selection.AutoFilter Field:=10, Criteria1:="RENE"
Sheets("Analyse").Select
End Sub
Pouvez vous nous aider svp?
Mon problème reste le filtrage, ca ne marche pas! en fait dans mon combobox, je souhaite mettre deux critères:
que les clients de RENE et que ceux qui n'ont pas l'assurance santé (dans base de données).
Dans ROWSOURCE, on a mis Données!A7:A47 (que les clients de RENE)
et dans le module 2 (module d'ouverture du userform2) on a mis:
Sub ouverture_userform2()
'Activer le UserForm nommé UserForm2
UserForm2.Show
'Filtrer les clients de René
Sheets("Données").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:="NON"
Selection.AutoFilter Field:=10, Criteria1:="RENE"
Sheets("Analyse").Select
End Sub
Pouvez vous nous aider svp?
je pense que la suite est là : http://www.commentcamarche.net/forum/affich 11915763 problemes en vba
;o)
Je cherchais à faire le code que tu as donné. ça fonctionne nickel. J'ai juste un problème. Lorsque je sélectionne l'élément de ma listbox :
Private Sub ListBox1_Change()
lig = ListBox1.ListIndex + 3
Label4 = Cells(lig, 4)
Label5 = Cells(lig, 5)
Label8 = Cells(lig, 6)
Mes lig sont simplément incrémentées 1, 2, 3, etc ...
C'est à dire que mes lignes filtrées peuvent être 11, 15, 20 mais ma listbox prends les lignes 1 à 3.
Est ce que tu aurais une solution ?
Merci de ton aide.
Pascal.
Tu met 2 colonnes sur ta listbox, r'occupe pas des largeurs je l'ai prévu en code.
tu remplace le remplissage de la lisrbox par
Et pour retrouver..remplacer,
Par
A+
D'abord un grand merci pour ton aide précieuse.
Ton code marche nickel. J'ai juste un dernier petit problème à résoudre. J'ai cherché avant de t'embêter mais je sèche ... Une fois de plus.
Mon programme ne veut pas ré initialiser ma listbox ...
Private Sub CommandButton6_Click()
ComboBox1.Value = ""
ComboBox2.Value = ""
ActiveSheet.Range("A:F").AutoFilter Field:=1
ActiveSheet.Range("A:F").AutoFilter Field:=2
ListBox1.Clear
End Sub
J'ai le message : "erreur d'execution 381
Impossible de lire la propriété list.Index de table de propriétés non valide." = sur le code ListBox1_Change()
Je suis proche du bonheur....
D'avance merci.
Pascal.
Ajoute
Evidement faut remettre à True si tu veux de nouveau la remplir et t'en servir.
A+