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

Filtres personnalisés VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

richert90

XLDnaute Occasionnel
Bonjour,

Je souhaite (avec VBA) demander à l'utilisateur 2 valeurs (via un userform): une valeur minimum et une valeur maximum. Ensuite je garderai dans un tableau toutes les données telle que la mesure X soit comprise entre les 2 valeurs rentrées par l'utilisateur. Le problème c'est qu'en essayant de le faire via "filtres textuels" --> "filtres personnalisés" , je suis dans la boite de dialogue de filtres automatique personnalisé et pour que ca marche je peux QUE choisir des valeurs comprises dans le tableau.
Par exemple l'utilisateur veut garder que les données comprises entre 10 et 20 cm( on suppose qu'on veut filtrer sur une mesure), le filtre fait avant ne gardera rien si il n' y a pas de valeur 10 et de valeur 20 dans la colonne correspondante.

Je vous joins un fichier exemple, ce sera plus simple pour comprendre

Merci d'avance de votre aide,
 

Pièces jointes

Re : Filtres personnalisés VBA

En effet c'est à cause du format que ça ne marchait pas. J'ai donc ajouté ce code pour remplacer les "." par es "," sauf qu'au lieu que 6.25 devienne 6,25 j’obtiens 6 250...

Code:
Sheets("dataBase").Select
    Columns("O:O").Select
    Selection.Replace What:=".", Replacement:=","
J'ai aussi essayé ça:
Code:
Sheets("dataBase").Select
    Columns("O:O").Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
Même résultat...

Merci de m'aider, je ne vois pas pourquoi il me fait ça..
 
Re : Filtres personnalisés VBA

Re,
Très curieux !

le remplacement du point par la virgule, en manuel, fonctionne ! Cette action enregistrée par l'enregistreur de macro donne un code qui ne fonctionne plus lorsque cette macro est lancée ( et que les données ont été réinitialisées ) !!

après avoir fait maints essais notamment sur les formats, pas de solution

Désolé
 
Re : Filtres personnalisés VBA

D'accord merci quand même.
J'ai essayé ça :
Code:
Selection.Replace What:=".", Replacement:="."
et là ça à marché..
Je ne sais pas vraiment pourquoi d'ailleurs...
Tu aurais une idée?
 
Re : Filtres personnalisés VBA

Bonjour,

Sans Replace, sur le classeur donné en exemple, ceci fonctionne:
Code:
Sub Macro2()
    With ActiveSheet.Range("$A$1:$B$26")
        .Value = .Value
        .NumberFormat = "0.000"
        .AutoFilter Field:=1, Criteria1:=">40", Operator:=xlAnd, Criteria2:="<900"
    End With
End Sub

A+
 
Re : Filtres personnalisés VBA

Bonjour,

Par contre il faut que tous les nombres de la colonne auxquels on applique le format aient 3 chiffres après la virgule (Ni plus ni moins) ?

Tu peux en mettre dix si tu veux. J'ai mis le format "0.000" car sans cela, un format sans décimaux était affiché.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…