Filtres personnalisés VBA

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

  • Classeur2.xlsm
    18.1 KB · Affichages: 45
  • Classeur2.xlsm
    18.1 KB · Affichages: 42
  • Classeur2.xlsm
    18.1 KB · Affichages: 51

richert90

XLDnaute Occasionnel
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..
 

Paf

XLDnaute Barbatruc
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é
 
G

Guest

Guest
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+
 
G

Guest

Guest
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+
 

Discussions similaires

Réponses
9
Affichages
231