Comment récupérer la Valeur d'un filtre automatique qui

NicolasE

XLDnaute Junior
Bonjour,
Je suis nouveau sur le forum, j'ai regardé toutes les réponses qui pourraient correspondre à mon probleme, mais je n'ai rien trouvé. Je m'explique:

J'aimerai récupérer la valeur de mon filtre automatique dans une cellule de ma feuille excel.
Ci joint le fichier excel...

J'ai realisé ce programme: (trouvé sur ce forum)

Sub RécupValeurFiltre()
Dim ValeurDuFiltre As String
With AutoFilter.Filters(1)
If .On Then [E1] = .Criteria1 ' Ecrit dans la cellule E1 la valeur du filtre
End With
End Sub

Les problemes sont les suivants:
1- Je dois double cliquer sur E1 pour lire la valeur du filtre, par défaut le compilateur écrit 0 dans la cellule E1.
--> Jaimerai que la valeur s'affiche dans cette cellule sans aucun clique.
2- Lorsque je change de filtre (je passe de Renault à Peugeot par exemple) la valeur reste à Renault...Je n'arrive pas à creer une boucle qui puisse changer la valeur en fonction du changement de mon filtre.
3- Enfin, Je dois à chaque fois relancer le programme (fleche verte dans la barre d'outils VBA) pour que la valeur change, c'est à dire pour qu'elle se mette à jour en fonction de mon filtre, lorsque je double clique sur ma cellule E1(probleme n°1).

J'espere vous avoir exposé correctement mon probleme, j'attend votre aide avec impatience!
Merci à tous.
 

Pièces jointes

  • Prendre valeur filtre modifiable.xls
    21 KB · Affichages: 450

tototiti2008

XLDnaute Barbatruc
Re : Comment récupérer la Valeur d'un filtre automatique qui

Bonjour NicolasE,

Voilà comment j'ai fait :

Dans le code de Feuil1, j'ai mis :
Code:
Private Sub Worksheet_Calculate()
Dim ValeurDuFiltre As String
    With AutoFilter.Filters(1)
    If .On Then [E1].Value = "'" & .Criteria1 Else [E1].Value = ""    ' Ecrit dans la cellule E1 la valeur du filtre
    End With
End Sub

Mais ça ne marche que s'il y a une fonction volatile dans la feuille, c'est à dire une fonction du type
=maintenant()
 

NicolasE

XLDnaute Junior
Re : Comment récupérer la Valeur d'un filtre automatique qui

re-bonjour,

abcd, c'est à partir du lien que tu m'envoie que j'ai construit mon programme. Merci quand meme.
tototiti2008 , merci pour ton message, mais etant débutant en vba, j'ai quelque soucis..
Lorsque je veux lancer la private sub Worksheet_Calculate, le compilateur ne trouve pas cette sub...Je ne peux donc pas la lancer.
Pourrais tu m'expliquer la procédure à realiser pour pouvoir la lancer et verifier qu'elle marche bien??
Merci d'avance
 

tototiti2008

XLDnaute Barbatruc
Re : Comment récupérer la Valeur d'un filtre automatique qui

Tu n'as rien à lancer, elle se lance automatiquement lorsque tu fais un filtre (si tu l'as bien placée dans Feuil1, et que tu as mis une fonction volatile dans la feuille de calcul)
 

NicolasE

XLDnaute Junior
Re : Comment récupérer la Valeur d'un filtre automatique qui

D'accord, je comprend mieu!
Le probleme c'est que je ne connais pas les fonctions volatiles...
Par contre ton programme marche bien mais le probleme c'est qu'il ne marche qu'apres ouverture du fichier, ensuite il ne marche plus . Il faut le fermer et le reouvrir pour que ca remarche à nouveau. Comment faire pour que ca marche lorsque je change de valeur du filtre auto (que je passe de Renault à peugeot par exemple?)
Merci d'avance!
 

NicolasE

XLDnaute Junior
Re : Comment récupérer la Valeur d'un filtre automatique qui

En fait bhbh, c'est la formule de abcd que j'ai testé, et elle ne met pas à jour, il faudrait imbriqquer une boucle for qui dirait que à chaque nouvelle valeur du filtre, changer la valeur criteria1 en fonction de cette nouvelle valeur du filtre...
J'attend vos reponses, merci bcp!
 

abcd

XLDnaute Barbatruc
Re : Comment récupérer la Valeur d'un filtre automatique qui

Bonjour,

Il doit il y avoir un petit problème, car la mise à jour se fait bien.

La formule proposée renvoie le numéro de la première ligne filtrée.

La formule en pièce jointe a été adaptée de façon à renvoyer le contenu de cette cellule et une condition prélimiaire y a été ajoutée de sorte que la cellule contenant la formule reste vide si le filtre n'est pas appliqué.

C'est une formule matricielle, à valider par Ctrl+Maj+Entrée

Dis-moi si cela te convient.

abcd
 

Pièces jointes

  • NicolasE.zip
    3.2 KB · Affichages: 496
  • NicolasE.zip
    3.2 KB · Affichages: 518
  • NicolasE.zip
    3.2 KB · Affichages: 573

NicolasE

XLDnaute Junior
Re : Comment récupérer la Valeur d'un filtre automatique qui

Merci pour vos réponses, j'ai adapter celle de tototiti2008, ca fonctionne , ce matin j'avais fait une erreur en la mettant dans mon fichier.

prog:

Private Sub Worksheet_Calculate()
Dim ValeurDuFiltre As String
With AutoFilter.Filters(1)
If .On Then [E1].Value = "'" & .Criteria1 Else [E1].Value = "" ' Ecrit dans la cellule E1 la valeur du filtre
End With
End Sub


Derniere petite question: est il possible d'enlever le signe "=" devant la valeur de mon filtre?
Merci beaucoup pour vos réponses!!
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87