filtre élaboré, enfin un peu

f69815

XLDnaute Occasionnel
bonsoir le forum,

petit pb dans un UF avec deux textbox, voici le code :

Sub filtre_num_oi()
MsgBox ' Vous avez choisi les OI entre ' & min_oi & ' et ' & max_oi
Sheets('histoi').Range('G1:G1').Select
Selection.AutoFilter
Selection.AutoFilter Field:=7, Criteria1:='==>' & min_oi, Operator:=xlAnd, _
Criteria2:='==>' & max_oi

End Sub


le msgbox retourne bien les valeurs rentrées dans l'UF, mais le résultat = 0, rien d'afficher, alors que je suis certain de ma fourchette.

ces variables sont déclarées public, string

cerise sur le gâteau, pour éviter les erreurs de frappe, comment en cliquant dans une cellule afficher sa valeur dans le textbox, sachant qu'il va falloir le faire deux fois pour le filtre.

la bonne nuit à tous ceux qui vont cogiter
 

f69815

XLDnaute Occasionnel
bonjour Gael, le forum,

je ne pense pas que le pb vienne de la selection de la colonne, j'ai un autre filtre, qui fonctionne bien, et qui a la même structure, sauf qu'il est simple et c'est un '='.

mon idée est que c'est la syntaxe pour écrire le '=>' et le '=<'.

@+
 

f69815

XLDnaute Occasionnel
rebonjour tout le monde,

demande une explication du fonctionnement du filtre automatique en manu :

j' ai deux donées (c'est pour faire court) : N0300226
et N0300227.

quand je fais un filtre personalisée, directement dans la feuille, >= à N0300226 et <=N0300227 il ne me restitue que N0300226
alors que je dois avoir les deux valeurs.

qu'en pensez-vous

bye
 

Gael

XLDnaute Barbatruc
Rebonjour,

J'ai fait quelques essais avec le filtre élaboré et XL me restitue bien les 2 valeurs.

Vérifie bien (même si tu en es sûr) qu'il n'y a pas de confusion entre des lettres 'O' et des chiffres '0', soit dans les données elles-mêmes, soit dans la saisie des valeurs min et max.

@+

Gael
 

f69815

XLDnaute Occasionnel
rerebonjour,

je n'y comprend rien je joins ma liste et dis-moi si tu trouves des anomalies.
merci [file name=filtre_20050629143111.zip size=9137]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/filtre_20050629143111.zip[/file]
 

Pièces jointes

  • filtre_20050629143111.zip
    8.9 KB · Affichages: 16

Gael

XLDnaute Barbatruc
Bonjour,

Désolé, j'aurais te répondre beaucoup plus vite mais je n'ai pas fait attention:

Comme tu travailles sur du texte, il faut mettre des '' pour que ça marche avec le signe '=' soit:

>='N0300226'
<='N0300227'

@+

Gael
 

f69815

XLDnaute Occasionnel
salut,
pas grave, par contre mon critère de filtre je le passe par variable :
Criteria1:='>=' & min_oi, Operator:=xlAnd, _
Criteria2:='<=' & max_oi

je l'ai modifiée :

Criteria1:='>=' & ''' & min_oi & ''', Operator:=xlAnd, _
Criteria2:='<=' & ''' & max_oi & '''

mais au lieu de donner 'N000000' j'ai '&min_oi&'

que faut-il faire
 

Gael

XLDnaute Barbatruc
Rectification:

En fait c'est le = qui ne fonctionne pas avec le texte.

>N00300226 va inclure N00300226 et suivants
<N00300227 n'inclue pas N00300227

il faut rajouter une troisième condition OU ='N00300227' pour que ça marche.

Essaie sur filtre manuel d'abord.

J'ai un RDV maintenant, je me reconnecterai tout à l'heure.

@+

Gael
 

f69815

XLDnaute Occasionnel
c'est denouveau moi,

ma ligne devrait-elle ressembler à celle-la

Selection.AutoFilter Field:=7, Criteria1:='>=' & min_oi, Operator:=xlAnd, _
Criteria2:='<' & max_oi, Operator:=xlOr, Criteria3:='=' & max_oi

ou

Selection.AutoFilter Field:=7, Criteria1:='>=' & min_oi, Operator:=xlAnd, _
Criteria2:='<' & max_oi, Operator:=xlOr, Criteria3:= max_oi

à ce soir, je m'en vais
 

Gael

XLDnaute Barbatruc
Bonsoir,

En fait sur excel 2003, la acro suivante fonctionne très bien:

min_oi = 'N00300226'
max_oi = 'N00300234'

Range('A10').Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:='>=' & min_oi, Operator:=xlAnd _
, Criteria2:='<=' & max_oi

C'est ce qui résultait des premiers messages.

Je refais un essai demain sur une version 2000 et te tiens au courant dans l'après-midi (j'habite aux antilles et il y a 6h de décalage).

@+

Gael
 

Gael

XLDnaute Barbatruc
Bonjour,

En fait tout marche très bien avec la macro suivante:

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 30/06/2005 par GCHMDIR
'

'
min_oi = 'N00300226'
max_oi = 'N00300227'

Range('A10').Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:='>=' & min_oi, Operator:=xlAnd _
, Criteria2:='<=' & max_oi

End Sub

Aucune différence entre les versions 2000 et 2003. Alors d'où venait le problème?

Tout simplement parceque dans ta liste il y a un espace à la fin de chaque code, c'est pourquoi le = ne marche pas.

Le premier code s'affiche car 'N00300226 ' est > 'N00300226'
le deuxième ne s'affiche pas car 'N00300227 ' est différent de 'N00300227'.

Je te t'envoie pas de soleil des Antilles car il pleut beaucoup en ce moment mais le coeur y est.

@+

Gael
 

Discussions similaires

Statistiques des forums

Discussions
312 279
Messages
2 086 727
Membres
103 379
dernier inscrit
Berzekiel