OVH Cloud OVH Cloud

filtre en vba

9 réponses
Avatar
j-pascal
Bonjour,

J'ai essayé de faire un "filtre" en vba ... mais je me suis pour l'instant
limité à créer un bouton pour réinitialiser les listes ...

1- Comment peut-on supprimer les "petites flèches" sur les entêtes de
colonnes qu'on ne veut pas filtrer ?

2- Si ma ligne de "titre" (où figurent les rubriques) est situé à la 200ème
ligne de ma feuille, cela pose-t-il un pb quelconque ?

3- Y-t-il un moyen de singulariser la colonne sur laquelle est effectué le
filtre ? J'avais imaginé une mise en forme conditionnelle sur la cellule du
titre concerné ... mais celle-ci ne change pas !

4- pourriez-vous svp me dire à quoi devrait ressembler une macro "basique"
de filtre sachant par exemple que les "titres" sont sur la ligne 200 ?
Faut-il dimensionner la plage de valeurs filtrées ou le filtre s'effectue
par défaut sur toutes les lignes inférieures à la ligne de "titres" ?

Un grand merci d'avance pour vos lumières éventuelles.

JP

9 réponses

Avatar
JB
Bonsoir,


3- Dans l'onglet FonctionPerso1, une MFC colorie les colonnes
filtrées:

http://boisgontierj.free.fr/fichiers/jb-filtreautomatique.xls

Cordialement JB



Bonjour,

J'ai essayé de faire un "filtre" en vba ... mais je me suis pour l'inst ant
limité à créer un bouton pour réinitialiser les listes ...

1- Comment peut-on supprimer les "petites flèches" sur les entêtes de
colonnes qu'on ne veut pas filtrer ?

2- Si ma ligne de "titre" (où figurent les rubriques) est situé à l a 200ème
ligne de ma feuille, cela pose-t-il un pb quelconque ?

3- Y-t-il un moyen de singulariser la colonne sur laquelle est effectué le
filtre ? J'avais imaginé une mise en forme conditionnelle sur la cellul e du
titre concerné ... mais celle-ci ne change pas !

4- pourriez-vous svp me dire à quoi devrait ressembler une macro "basiq ue"
de filtre sachant par exemple que les "titres" sont sur la ligne 200 ?
Faut-il dimensionner la plage de valeurs filtrées ou le filtre s'effect ue
par défaut sur toutes les lignes inférieures à la ligne de "titres" ?

Un grand merci d'avance pour vos lumières éventuelles.

JP


Avatar
MichDenis
Un petit exemple :

Un filtre sur la colonne No 2 d'une plage définie
comme A1:Cx , x étant la dernière cellule de la colonne C

Tu adaptes le nom de la feuille de la procédure et le critère "Louise".

Le triangle du filtre auto. devrait apparaître seulement sur la colonne 2

Et un filtre automatique peut débuter sur la ligne de ton choix... pas
nécessairement à partir de la ligne 1

La colonne 2 de la plage contenait des prénoms dans mon exemple ...

'----------------------------
Sub test()

Dim Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A1:C" & .Range("A65536").End(xlUp).Row)
End With
With Rg
For A = 1 To Rg.Columns.Count
.AutoFilter field:=A, visibleDropDown:úlse
Next
.AutoFilter field:=2, Criteria1:="Louise", visibleDropDown:=True
End With

End Sub
'----------------------------




"j-pascal" a écrit dans le message de news:
%
Bonjour,

J'ai essayé de faire un "filtre" en vba ... mais je me suis pour l'instant
limité à créer un bouton pour réinitialiser les listes ...

1- Comment peut-on supprimer les "petites flèches" sur les entêtes de
colonnes qu'on ne veut pas filtrer ?

2- Si ma ligne de "titre" (où figurent les rubriques) est situé à la 200ème
ligne de ma feuille, cela pose-t-il un pb quelconque ?

3- Y-t-il un moyen de singulariser la colonne sur laquelle est effectué le
filtre ? J'avais imaginé une mise en forme conditionnelle sur la cellule du
titre concerné ... mais celle-ci ne change pas !

4- pourriez-vous svp me dire à quoi devrait ressembler une macro "basique"
de filtre sachant par exemple que les "titres" sont sur la ligne 200 ?
Faut-il dimensionner la plage de valeurs filtrées ou le filtre s'effectue
par défaut sur toutes les lignes inférieures à la ligne de "titres" ?

Un grand merci d'avance pour vos lumières éventuelles.

JP
Avatar
j-pascal
Bonsoir JB,

Merci, c'est vraiment génial !

Cordialement,

JP

wrote:
Bonsoir,


3- Dans l'onglet FonctionPerso1, une MFC colorie les colonnes
filtrées:

http://boisgontierj.free.fr/fichiers/jb-filtreautomatique.xls

Cordialement JB



Bonjour,

J'ai essayé de faire un "filtre" en vba ... mais je me suis pour
l'instant limité à créer un bouton pour réinitialiser les listes ...

1- Comment peut-on supprimer les "petites flèches" sur les entêtes de
colonnes qu'on ne veut pas filtrer ?

2- Si ma ligne de "titre" (où figurent les rubriques) est situé à la
200ème ligne de ma feuille, cela pose-t-il un pb quelconque ?

3- Y-t-il un moyen de singulariser la colonne sur laquelle est
effectué le filtre ? J'avais imaginé une mise en forme
conditionnelle sur la cellule du titre concerné ... mais celle-ci ne
change pas !

4- pourriez-vous svp me dire à quoi devrait ressembler une macro
"basique" de filtre sachant par exemple que les "titres" sont sur la
ligne 200 ? Faut-il dimensionner la plage de valeurs filtrées ou le
filtre s'effectue par défaut sur toutes les lignes inférieures à la
ligne de "titres" ?

Un grand merci d'avance pour vos lumières éventuelles.

JP




Avatar
j-pascal
Bonsoir MichDenis,

Je viens d'effectuer plusieurs essais. Certains fonctionnent, d'autres pas !

Un petit exemple :

Un filtre sur la colonne No 2 d'une plage définie
comme A1:Cx , x étant la dernière cellule de la colonne C

Tu adaptes le nom de la feuille de la procédure et le critère
"Louise".

Le triangle du filtre auto. devrait apparaître seulement sur la
colonne 2

Et un filtre automatique peut débuter sur la ligne de ton choix... pas
nécessairement à partir de la ligne 1

La colonne 2 de la plage contenait des prénoms dans mon exemple ...

'----------------------------
Sub test()

Dim Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A1:C" & .Range("A65536").End(xlUp).Row)


Si mon tableau comporte des colonnes de A à F, ça donne bien :
Set Rg = .Range("A1:F" & .Range("A65536").End(xlUp).Row) ?

End With
With Rg
For A = 1 To Rg.Columns.Count


Cette boucle compte bien le nombre de colonnes ?

.AutoFilter field:=A, visibleDropDown:úlse


Et ici on rend "invisible" la "petite flèche" dans toutes les colonnes
comptées ??
Si j'ai une "option explicit" je peux définir "dim A as integer" ?

Next
.AutoFilter field:=2, Criteria1:="Louise", visibleDropDown:=True


Là tu indiques que le filtre se fera uniquement dans la colonne 2 ?

End With

End Sub
'----------------------------


Si j'ai un tableau de A1 à F1000 et que je veux créer un filtre dans la
colonne E, je devrais donc avoir :

'----------------------------
Sub test()

Dim Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A1:F" & .Range("A65536").End(xlUp).Row)

End With
With Rg
For A = 1 To Rg.Columns.Count

.AutoFilter field:=A, visibleDropDown:úlse

Next
.AutoFilter field:=5, Criteria1:="Louise", visibleDropDown:=True
[sachant que j'ai remplacé "Louise" par : Criteria1:=valeur avec valeur =
Range("G1").Value]
End With

End Sub
'----------------------------

A bientôt ?

JP


"j-pascal" a écrit dans le message de news:
%
Bonjour,

J'ai essayé de faire un "filtre" en vba ... mais je me suis pour
l'instant limité à créer un bouton pour réinitialiser les listes ...

1- Comment peut-on supprimer les "petites flèches" sur les entêtes de
colonnes qu'on ne veut pas filtrer ?

2- Si ma ligne de "titre" (où figurent les rubriques) est situé à la
200ème ligne de ma feuille, cela pose-t-il un pb quelconque ?

3- Y-t-il un moyen de singulariser la colonne sur laquelle est
effectué le filtre ? J'avais imaginé une mise en forme conditionnelle
sur la cellule du titre concerné ... mais celle-ci ne change pas !

4- pourriez-vous svp me dire à quoi devrait ressembler une macro
"basique" de filtre sachant par exemple que les "titres" sont sur la
ligne 200 ? Faut-il dimensionner la plage de valeurs filtrées ou le
filtre s'effectue par défaut sur toutes les lignes inférieures à la
ligne de "titres" ?

Un grand merci d'avance pour vos lumières éventuelles.

JP


Avatar
j-pascal
Re,

J'ai lu et relu ton code pour essayer de mieux comprendre ...
Je l'ai utilisé dans un cas simple, comme celui que tu proposes ici, et je
suis tombé sur un os !
"Erreur d'exécution '1004' La méthode AutoFilter de la classe Range a
échoué" ! Grand moment de solitude ? Pas trouvé grand chose sur Google ...
Au bout de 2 heures, j'ai tenté (sans trop y croire) une manip :
J'ai sélectionné ma ligne de titre et j'ai crée un Filtre depuis le menu
"Outils..." et là "miracle" le code marchait de nouveau !!! J'ai fait ça
plus par hasard que par conviction ! Y-a-t'il une explication plus
rationnelle que la chance ?

A+ ?

JP


MichDenis wrote:
Un petit exemple :

Un filtre sur la colonne No 2 d'une plage définie
comme A1:Cx , x étant la dernière cellule de la colonne C

Tu adaptes le nom de la feuille de la procédure et le critère
"Louise".

Le triangle du filtre auto. devrait apparaître seulement sur la
colonne 2

Et un filtre automatique peut débuter sur la ligne de ton choix... pas
nécessairement à partir de la ligne 1

La colonne 2 de la plage contenait des prénoms dans mon exemple ...

'----------------------------
Sub test()

Dim Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A1:C" & .Range("A65536").End(xlUp).Row)
End With
With Rg
For A = 1 To Rg.Columns.Count
.AutoFilter field:=A, visibleDropDown:úlse
Next
.AutoFilter field:=2, Criteria1:="Louise", visibleDropDown:=True
End With

End Sub
'----------------------------




"j-pascal" a écrit dans le message de news:
%
Bonjour,

J'ai essayé de faire un "filtre" en vba ... mais je me suis pour
l'instant limité à créer un bouton pour réinitialiser les listes ...

1- Comment peut-on supprimer les "petites flèches" sur les entêtes de
colonnes qu'on ne veut pas filtrer ?

2- Si ma ligne de "titre" (où figurent les rubriques) est situé à la
200ème ligne de ma feuille, cela pose-t-il un pb quelconque ?

3- Y-t-il un moyen de singulariser la colonne sur laquelle est
effectué le filtre ? J'avais imaginé une mise en forme conditionnelle
sur la cellule du titre concerné ... mais celle-ci ne change pas !

4- pourriez-vous svp me dire à quoi devrait ressembler une macro
"basique" de filtre sachant par exemple que les "titres" sont sur la
ligne 200 ? Faut-il dimensionner la plage de valeurs filtrées ou le
filtre s'effectue par défaut sur toutes les lignes inférieures à la
ligne de "titres" ?

Un grand merci d'avance pour vos lumières éventuelles.

JP


Avatar
MichDenis
Voici un exemple vite fait... est-ce que tu trouves quelque chose qui ne fonctionne pas ?

http://cjoint.com/?btwIuxX1CV


"j-pascal" a écrit dans le message de news:

Re,

J'ai lu et relu ton code pour essayer de mieux comprendre ...
Je l'ai utilisé dans un cas simple, comme celui que tu proposes ici, et je
suis tombé sur un os !
"Erreur d'exécution '1004' La méthode AutoFilter de la classe Range a
échoué" ! Grand moment de solitude ? Pas trouvé grand chose sur Google ...
Au bout de 2 heures, j'ai tenté (sans trop y croire) une manip :
J'ai sélectionné ma ligne de titre et j'ai crée un Filtre depuis le menu
"Outils..." et là "miracle" le code marchait de nouveau !!! J'ai fait ça
plus par hasard que par conviction ! Y-a-t'il une explication plus
rationnelle que la chance ?

A+ ?

JP


MichDenis wrote:
Un petit exemple :

Un filtre sur la colonne No 2 d'une plage définie
comme A1:Cx , x étant la dernière cellule de la colonne C

Tu adaptes le nom de la feuille de la procédure et le critère
"Louise".

Le triangle du filtre auto. devrait apparaître seulement sur la
colonne 2

Et un filtre automatique peut débuter sur la ligne de ton choix... pas
nécessairement à partir de la ligne 1

La colonne 2 de la plage contenait des prénoms dans mon exemple ...

'----------------------------
Sub test()

Dim Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A1:C" & .Range("A65536").End(xlUp).Row)
End With
With Rg
For A = 1 To Rg.Columns.Count
.AutoFilter field:=A, visibleDropDown:úlse
Next
.AutoFilter field:=2, Criteria1:="Louise", visibleDropDown:=True
End With

End Sub
'----------------------------




"j-pascal" a écrit dans le message de news:
%
Bonjour,

J'ai essayé de faire un "filtre" en vba ... mais je me suis pour
l'instant limité à créer un bouton pour réinitialiser les listes ...

1- Comment peut-on supprimer les "petites flèches" sur les entêtes de
colonnes qu'on ne veut pas filtrer ?

2- Si ma ligne de "titre" (où figurent les rubriques) est situé à la
200ème ligne de ma feuille, cela pose-t-il un pb quelconque ?

3- Y-t-il un moyen de singulariser la colonne sur laquelle est
effectué le filtre ? J'avais imaginé une mise en forme conditionnelle
sur la cellule du titre concerné ... mais celle-ci ne change pas !

4- pourriez-vous svp me dire à quoi devrait ressembler une macro
"basique" de filtre sachant par exemple que les "titres" sont sur la
ligne 200 ? Faut-il dimensionner la plage de valeurs filtrées ou le
filtre s'effectue par défaut sur toutes les lignes inférieures à la
ligne de "titres" ?

Un grand merci d'avance pour vos lumières éventuelles.

JP


Avatar
j-pascal
Bonjour MichDenis,

Voici un exemple vite fait... est-ce que tu trouves quelque chose qui
ne fonctionne pas ?

http://cjoint.com/?btwIuxX1CV


Non, non c'est parfait, tout comme l'était ton premier et précédent fichier.

Si tu veux jeter un coup d'oeil sur mon fichier qui pose pb ... il est là :

http://cjoint.com/?bvpmUfTaGj

(lorsqu'on lance la macro "bouton Filtre" il y a le fameux message de
débogage que je ne m'explique pas ! Ce qui est étonnant, c'est que si je
sélectionne la première ligne du fichier et que je fais "Outils / Filtre
Automatique" (deux fois car ça ne marche pas la première fois !), le filtre
fonctionne en exécutant la macro et cette dernière ne génère plus le message
d'erreur !)

A bientôt ... peut-être ?

JP




J'ai lu et relu ton code pour essayer de mieux comprendre ...
Je l'ai utilisé dans un cas simple, comme celui que tu proposes ici,
et je
suis tombé sur un os !
"Erreur d'exécution '1004' La méthode AutoFilter de la classe Range a
échoué" ! Grand moment de solitude ? Pas trouvé grand chose sur
Google ...
Au bout de 2 heures, j'ai tenté (sans trop y croire) une manip :
J'ai sélectionné ma ligne de titre et j'ai crée un Filtre depuis le
menu "Outils..." et là "miracle" le code marchait de nouveau !!! J'ai
fait ça
plus par hasard que par conviction ! Y-a-t'il une explication plus
rationnelle que la chance ?

A+ ?

JP


MichDenis wrote:
Un petit exemple :

Un filtre sur la colonne No 2 d'une plage définie
comme A1:Cx , x étant la dernière cellule de la colonne C

Tu adaptes le nom de la feuille de la procédure et le critère
"Louise".

Le triangle du filtre auto. devrait apparaître seulement sur la
colonne 2

Et un filtre automatique peut débuter sur la ligne de ton choix...
pas nécessairement à partir de la ligne 1

La colonne 2 de la plage contenait des prénoms dans mon exemple ...

'----------------------------
Sub test()

Dim Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A1:C" & .Range("A65536").End(xlUp).Row)
End With
With Rg
For A = 1 To Rg.Columns.Count
.AutoFilter field:=A, visibleDropDown:úlse
Next
.AutoFilter field:=2, Criteria1:="Louise", visibleDropDown:=True
End With

End Sub
'----------------------------




"j-pascal" a écrit dans le message de news:
%
Bonjour,

J'ai essayé de faire un "filtre" en vba ... mais je me suis pour
l'instant limité à créer un bouton pour réinitialiser les listes ...

1- Comment peut-on supprimer les "petites flèches" sur les entêtes de
colonnes qu'on ne veut pas filtrer ?

2- Si ma ligne de "titre" (où figurent les rubriques) est situé à la
200ème ligne de ma feuille, cela pose-t-il un pb quelconque ?

3- Y-t-il un moyen de singulariser la colonne sur laquelle est
effectué le filtre ? J'avais imaginé une mise en forme conditionnelle
sur la cellule du titre concerné ... mais celle-ci ne change pas !

4- pourriez-vous svp me dire à quoi devrait ressembler une macro
"basique" de filtre sachant par exemple que les "titres" sont sur la
ligne 200 ? Faut-il dimensionner la plage de valeurs filtrées ou le
filtre s'effectue par défaut sur toutes les lignes inférieures à la
ligne de "titres" ?

Un grand merci d'avance pour vos lumières éventuelles.

JP




Avatar
MichDenis
Utilise ce code dans ton classeur :

La commande AutoFilter est comme la commande du bouton "mettre en gras"
de la barre d'outils.

Feuil1.Range("A1").Autofilter - > place les boutons du filtre sur la feuille
si tu exécutes à nouveau cette ligne de commande, les boutons du filtre disparaisse.

Aussi faut-il s'assurer du statut du filtre sur la feuille avant d'exécuter la macro et c'est ce que
fait
cette ligne de code : If .AutoFilterMode = True Then Rg.AutoFilter


'--------------------------------
Sub Filtre()

Dim Rg As Range
Dim A As Integer
Dim valeur As String

Application.ScreenUpdating = False
valeur = Range("F1").Value
With Worksheets("Feuil1")
Set Rg = .Range("A1:E" & .Range("A65536").End(xlUp).Row)
If .AutoFilterMode = True Then Rg.AutoFilter
End With
With Rg
For A = 1 To Rg.Columns.Count
.AutoFilter field:=A, visibleDropDown:úlse
Next
.AutoFilter field:=3, Criteria1:=valeur, visibleDropDown:=True
End With

End Sub
'--------------------------------
Sub reset()
If Feuil1.FilterMode = True Then
Feuil1.Range("A1").AutoFilter
End If
End Sub
'--------------------------------




"j-pascal" a écrit dans le message de news:
%
Bonjour MichDenis,

Voici un exemple vite fait... est-ce que tu trouves quelque chose qui
ne fonctionne pas ?

http://cjoint.com/?btwIuxX1CV


Non, non c'est parfait, tout comme l'était ton premier et précédent fichier.

Si tu veux jeter un coup d'oeil sur mon fichier qui pose pb ... il est là :

http://cjoint.com/?bvpmUfTaGj

(lorsqu'on lance la macro "bouton Filtre" il y a le fameux message de
débogage que je ne m'explique pas ! Ce qui est étonnant, c'est que si je
sélectionne la première ligne du fichier et que je fais "Outils / Filtre
Automatique" (deux fois car ça ne marche pas la première fois !), le filtre
fonctionne en exécutant la macro et cette dernière ne génère plus le message
d'erreur !)

A bientôt ... peut-être ?

JP




J'ai lu et relu ton code pour essayer de mieux comprendre ...
Je l'ai utilisé dans un cas simple, comme celui que tu proposes ici,
et je
suis tombé sur un os !
"Erreur d'exécution '1004' La méthode AutoFilter de la classe Range a
échoué" ! Grand moment de solitude ? Pas trouvé grand chose sur
Google ...
Au bout de 2 heures, j'ai tenté (sans trop y croire) une manip :
J'ai sélectionné ma ligne de titre et j'ai crée un Filtre depuis le
menu "Outils..." et là "miracle" le code marchait de nouveau !!! J'ai
fait ça
plus par hasard que par conviction ! Y-a-t'il une explication plus
rationnelle que la chance ?

A+ ?

JP


MichDenis wrote:
Un petit exemple :

Un filtre sur la colonne No 2 d'une plage définie
comme A1:Cx , x étant la dernière cellule de la colonne C

Tu adaptes le nom de la feuille de la procédure et le critère
"Louise".

Le triangle du filtre auto. devrait apparaître seulement sur la
colonne 2

Et un filtre automatique peut débuter sur la ligne de ton choix...
pas nécessairement à partir de la ligne 1

La colonne 2 de la plage contenait des prénoms dans mon exemple ...

'----------------------------
Sub test()

Dim Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A1:C" & .Range("A65536").End(xlUp).Row)
End With
With Rg
For A = 1 To Rg.Columns.Count
.AutoFilter field:=A, visibleDropDown:úlse
Next
.AutoFilter field:=2, Criteria1:="Louise", visibleDropDown:=True
End With

End Sub
'----------------------------




"j-pascal" a écrit dans le message de news:
%
Bonjour,

J'ai essayé de faire un "filtre" en vba ... mais je me suis pour
l'instant limité à créer un bouton pour réinitialiser les listes ...

1- Comment peut-on supprimer les "petites flèches" sur les entêtes de
colonnes qu'on ne veut pas filtrer ?

2- Si ma ligne de "titre" (où figurent les rubriques) est situé à la
200ème ligne de ma feuille, cela pose-t-il un pb quelconque ?

3- Y-t-il un moyen de singulariser la colonne sur laquelle est
effectué le filtre ? J'avais imaginé une mise en forme conditionnelle
sur la cellule du titre concerné ... mais celle-ci ne change pas !

4- pourriez-vous svp me dire à quoi devrait ressembler une macro
"basique" de filtre sachant par exemple que les "titres" sont sur la
ligne 200 ? Faut-il dimensionner la plage de valeurs filtrées ou le
filtre s'effectue par défaut sur toutes les lignes inférieures à la
ligne de "titres" ?

Un grand merci d'avance pour vos lumières éventuelles.

JP




Avatar
j-pascal
Bonsoir MichDenis,

Merci ! J'y vois un peu plus clair.

A bientôt, peut-être ?

JP

Utilise ce code dans ton classeur :

La commande AutoFilter est comme la commande du bouton "mettre en
gras"
de la barre d'outils.

Feuil1.Range("A1").Autofilter - > place les boutons du filtre sur la
feuille
si tu exécutes à nouveau cette ligne de commande, les boutons du
filtre disparaisse.

Aussi faut-il s'assurer du statut du filtre sur la feuille avant
d'exécuter la macro et c'est ce que fait
cette ligne de code : If .AutoFilterMode = True Then Rg.AutoFilter


'--------------------------------
Sub Filtre()

Dim Rg As Range
Dim A As Integer
Dim valeur As String

Application.ScreenUpdating = False
valeur = Range("F1").Value
With Worksheets("Feuil1")
Set Rg = .Range("A1:E" & .Range("A65536").End(xlUp).Row)
If .AutoFilterMode = True Then Rg.AutoFilter
End With
With Rg
For A = 1 To Rg.Columns.Count
.AutoFilter field:=A, visibleDropDown:úlse
Next
.AutoFilter field:=3, Criteria1:=valeur, visibleDropDown:=True
End With

End Sub
'--------------------------------
Sub reset()
If Feuil1.FilterMode = True Then
Feuil1.Range("A1").AutoFilter
End If
End Sub
'--------------------------------




"j-pascal" a écrit dans le message de news:
%
Bonjour MichDenis,

Voici un exemple vite fait... est-ce que tu trouves quelque chose qui
ne fonctionne pas ?

http://cjoint.com/?btwIuxX1CV


Non, non c'est parfait, tout comme l'était ton premier et précédent
fichier.

Si tu veux jeter un coup d'oeil sur mon fichier qui pose pb ... il
est là :

http://cjoint.com/?bvpmUfTaGj

(lorsqu'on lance la macro "bouton Filtre" il y a le fameux message de
débogage que je ne m'explique pas ! Ce qui est étonnant, c'est que si
je
sélectionne la première ligne du fichier et que je fais "Outils /
Filtre
Automatique" (deux fois car ça ne marche pas la première fois !), le
filtre
fonctionne en exécutant la macro et cette dernière ne génère plus le
message
d'erreur !)

A bientôt ... peut-être ?

JP




J'ai lu et relu ton code pour essayer de mieux comprendre ...
Je l'ai utilisé dans un cas simple, comme celui que tu proposes ici,
et je
suis tombé sur un os !
"Erreur d'exécution '1004' La méthode AutoFilter de la classe Range a
échoué" ! Grand moment de solitude ? Pas trouvé grand chose sur
Google ...
Au bout de 2 heures, j'ai tenté (sans trop y croire) une manip :
J'ai sélectionné ma ligne de titre et j'ai crée un Filtre depuis le
menu "Outils..." et là "miracle" le code marchait de nouveau !!! J'ai
fait ça
plus par hasard que par conviction ! Y-a-t'il une explication plus
rationnelle que la chance ?

A+ ?

JP


MichDenis wrote:
Un petit exemple :

Un filtre sur la colonne No 2 d'une plage définie
comme A1:Cx , x étant la dernière cellule de la colonne C

Tu adaptes le nom de la feuille de la procédure et le critère
"Louise".

Le triangle du filtre auto. devrait apparaître seulement sur la
colonne 2

Et un filtre automatique peut débuter sur la ligne de ton choix...
pas nécessairement à partir de la ligne 1

La colonne 2 de la plage contenait des prénoms dans mon exemple ...

'----------------------------
Sub test()

Dim Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A1:C" & .Range("A65536").End(xlUp).Row)
End With
With Rg
For A = 1 To Rg.Columns.Count
.AutoFilter field:=A, visibleDropDown:úlse
Next
.AutoFilter field:=2, Criteria1:="Louise", visibleDropDown:=True
End With

End Sub
'----------------------------




"j-pascal" a écrit dans le message de
news: %
Bonjour,

J'ai essayé de faire un "filtre" en vba ... mais je me suis pour
l'instant limité à créer un bouton pour réinitialiser les listes ...

1- Comment peut-on supprimer les "petites flèches" sur les entêtes
de colonnes qu'on ne veut pas filtrer ?

2- Si ma ligne de "titre" (où figurent les rubriques) est situé à la
200ème ligne de ma feuille, cela pose-t-il un pb quelconque ?

3- Y-t-il un moyen de singulariser la colonne sur laquelle est
effectué le filtre ? J'avais imaginé une mise en forme
conditionnelle sur la cellule du titre concerné ... mais celle-ci
ne change pas !

4- pourriez-vous svp me dire à quoi devrait ressembler une macro
"basique" de filtre sachant par exemple que les "titres" sont sur la
ligne 200 ? Faut-il dimensionner la plage de valeurs filtrées ou le
filtre s'effectue par défaut sur toutes les lignes inférieures à la
ligne de "titres" ?

Un grand merci d'avance pour vos lumières éventuelles.

JP