OVH Cloud OVH Cloud

VBA : Filtre avec "0" "000"...

3 réponses
Avatar
Domi
Bonsoir à tous,
Je me heurte au problème suivant :
Je veux filtrer ma "Base" avec un filtre élaboré dont les critères est en
I1:I2
Dans la colonne de référence, j'ai des valeurs au format texte avec parfois
0, parfois 00, 000 ou 0000 (et ce sont des valeurs différentes.
Si en I2, je met 0, cela me laisse apparaître toutes les lignes qui
contiennent 0 ou 00 etc... hors je ne voudrais que celles qui contiennent 0
(seul)
Idem pour 00 etc...
En fait dans le filtre Excel considère sue 0,00, 000 et 0000 c'est la même
chose mais si je teste par une égalité une cellule qui contient "00" avec I2
qui contient "0" j'ai bien FAUX !

Sub FiltrerZero()
Range("Base").AdvancedFilter Action:=xlFilterInPlace,
CriteriaRange:=Range("I1:I2"), Unique:=False
End Sub

Merci pour votre aide

Domi

3 réponses

Avatar
AV
Une possibilité avec ta plage à filtrer en A2:Ax (A1 = étiquette de colonne)

Zone de critère I1:I2 (Laisser la cellule I1 vide)

Pour filtrer les données du style 01; 012345; 0789
En I2 :
=(GAUCHE(A2;1)="0")*(STXT(A2;2;1)<>"0")
Pour filtrer les données du style 0001; 00012345; 000789
En I2 :
=(GAUCHE(A2;3)="000")*(STXT(A2;4;1)<>"0")

Etc pour les autres cas de figures
AV
Avatar
ChrisV
Bonjour Domi,

Petite variante...
avec la plage contenant les données de la BdD nommée Zn et la plage I1:J2
nommée Criteres
I1:J1 contenant chacune l'intitulé de la colonne de référence
en I2: ="=0"
en J2: ="=?"

Sub FiltrerZero()
[Zn].AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
[Criteres]
End Sub


nb: pour filtrer les "00", en J2: ="=??"
les "000", en J2: ="=???"
les "0,0", en J2: ="=?,?"
etc...


ChrisV


"Domi" a écrit dans le message de
news:OL$
Bonsoir à tous,
Je me heurte au problème suivant :
Je veux filtrer ma "Base" avec un filtre élaboré dont les critères est en
I1:I2
Dans la colonne de référence, j'ai des valeurs au format texte avec
parfois

0, parfois 00, 000 ou 0000 (et ce sont des valeurs différentes.
Si en I2, je met 0, cela me laisse apparaître toutes les lignes qui
contiennent 0 ou 00 etc... hors je ne voudrais que celles qui contiennent
0

(seul)
Idem pour 00 etc...
En fait dans le filtre Excel considère sue 0,00, 000 et 0000 c'est la même
chose mais si je teste par une égalité une cellule qui contient "00" avec
I2

qui contient "0" j'ai bien FAUX !

Sub FiltrerZero()
Range("Base").AdvancedFilter Action:=xlFilterInPlace,
CriteriaRange:=Range("I1:I2"), Unique:úlse
End Sub

Merci pour votre aide

Domi




Avatar
Domi
Merci pour votre aide à tous deux ;o)
Domi

"ChrisV" a écrit dans le message de
news:
Bonjour Domi,

Petite variante...
avec la plage contenant les données de la BdD nommée Zn et la plage I1:J2
nommée Criteres
I1:J1 contenant chacune l'intitulé de la colonne de référence
en I2: ="=0"
en J2: ="=?"

Sub FiltrerZero()
[Zn].AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
[Criteres]
End Sub


nb: pour filtrer les "00", en J2: ="=??"
les "000", en J2: ="=???"
les "0,0", en J2: ="=?,?"
etc...


ChrisV


"Domi" a écrit dans le message de
news:OL$
Bonsoir à tous,
Je me heurte au problème suivant :
Je veux filtrer ma "Base" avec un filtre élaboré dont les critères est
en


I1:I2
Dans la colonne de référence, j'ai des valeurs au format texte avec
parfois

0, parfois 00, 000 ou 0000 (et ce sont des valeurs différentes.
Si en I2, je met 0, cela me laisse apparaître toutes les lignes qui
contiennent 0 ou 00 etc... hors je ne voudrais que celles qui
contiennent


0
(seul)
Idem pour 00 etc...
En fait dans le filtre Excel considère sue 0,00, 000 et 0000 c'est la
même


chose mais si je teste par une égalité une cellule qui contient "00"
avec


I2
qui contient "0" j'ai bien FAUX !

Sub FiltrerZero()
Range("Base").AdvancedFilter Action:=xlFilterInPlace,
CriteriaRange:=Range("I1:I2"), Unique:úlse
End Sub

Merci pour votre aide

Domi