CRITERIA(x)...

chrisdu73

XLDnaute Occasionnel
Bonjour,
j'aurai juste une question concernant le nombre de fois que l'on peut utiliser "criteria" avec des OR sur une même ligne ?
Ou alors peut on faire appel à une variable ?

Merci d'avance pour une reponse
 

Misange

XLDnaute Barbatruc
Re : CRITERIA(x)...

Bonjour
Tu es limité par le nombre de caractères dans la formule, pas par le nombre d'arguments en tant que tels.
Si tes arguments sont
=si(ou(A1="là un texte très très long";A1="un autre texte très très long";....
tu seras beaucou plus vite limité qu'avec un
si(ou(A1=1, A1=34, A1=-12...)
 

hoerwind

XLDnaute Barbatruc
Re : CRITERIA(x)...

Bonjour, salut Misange,

Avec un exemple concret il est toujours plus facile de montrer comment contourner certaines limites.

A titre d'exemple :
Pour la fonction OU, il est possible de l'écrire comme ceci : =SI(OU(A1={1;34;-12}); ...
Pour les conditions, il est possible de les nommer (menu Insertion, ...) : =SI(OU(A1={texte1;texte2;texte3}); ...
 

Misange

XLDnaute Barbatruc
Re : CRITERIA(x)...

Tout à fait d'ac Hoerwind. Je crois d'ailleurs que j'avais signalé cette écriture il n'y a pas très longtemps. Ce que je voulais souligner c'est que la limite restera toujours la longueur de la formule en entier et pas le nb d'arguments ou. Avec l'écriture matricielle si les textes sont longs, on gagne un peu mais ça peut être seulement marginal.
 

chrisdu73

XLDnaute Occasionnel
Re : CRITERIA(x)...

merci a tout les deux pour votre aide, en faite mon problème est avec ce code, j'aurai voulu savoir s'il était possible de mettre mes critères de sélection dans une variable qui se trouverai sur une feuille dans un autre fichier et sur un lecteur différent?
exemple "C:\ paramétrage.xls" en "Feuil1", et mes critères sont en colonne de C2 à C20
alors comment écrire la ligne de code ?

Sheets("Import").Select
Range("A1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$H$263").AutoFilter Field:=2, Criteria1:=Array("BD", "001", "005", "RE", "RS"), Operator:=xlFilterValues
With ActiveWindow
End With
Cells.Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Sheets(Sheets.Count).Name = "IMP04"
 

job75

XLDnaute Barbatruc
Re : CRITERIA(x)...

Bonjour chrisdu73, salut Misange, hoerwind,

Vous avez raison, il faut utiliser le filtre élaboré (avancé).

Faites le fonctionner manuellement en utilisant l'enregistreur de macro, vous verrez le bon code...

La formule =OU(...;...) est à entrer dans la zone de critères [Edit] c'est à dire dans la feuille de calcul.

A+
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
152

Statistiques des forums

Discussions
312 392
Messages
2 088 004
Membres
103 694
dernier inscrit
YOHA