Comparer avec un critère Paramétré dans la fonction IF

Bonjour

je bute bêtement sur le fonctionnement de la boucle if then else.

Je m'explique

Pour alléger mon programme, je voudrais paramétrer la valeur de comparaison de la boucle.

If ws1.Cells(i, 17) <> CRIT Then

'Remplissage d'un tableau

Else

End If

CRIT est un critère, choisi au début du programme par msgbox, il prend les valeurs string "G" ou "S" que je voudrais paramétrer dans cette boucle

CRIT peut prendre les valeurs

Dim CRIT as string

CRIT = "G"

ou

CRIT = "S"

et tester sur CRIT sans avoir besoin de créer deux boucles, selon le critère CRIT, vous m'avez compris.

Mais ça ne semble pas fonctionner.

C'est sans doute simple comme question mais je ne vois pas:

Dim CRIT as string

End If

Bonjour,

If Cells(i, 17) <> "D" And Cells(i, 17) <> "G" Then

A+

Bonjour,

Ta syntaxe me semble correcte.

Les cellules de ta colonne 17 contiennent bien uniquement la lettre "G" ou "S", et pas d'autres caractères indésirables ?

L'exécution de la macro provoque un message d'erreur, ou ne fait simplement pas ce que tu attends ?

Il faudrait que tu exécutes ta macro pas à pas (touche F8), et en contrôlant le contenu des variables et le chemin prit par VBA (rentre ou non dans la structure IF). Tu peux aussi remplacer ton commentaire "'Remplissage d'un tableau" par un msgbox, du type :

msgbox "La ligne " & i & " ne contient pas la lettre " & CRIT

Merci de vos retours

Je vais tester le pas à pas détaillé et vous dire exactement ce qui se passe..moi même je suis perplexe; le fait de déclare un paramètre dans un boucle n'est pas impossible du moment qu'il est string, n'est ce pas ?

Les cellules de ta colonne 17 contiennent bien uniquement la lettre "G" ou "S", et pas d'autres caractères indésirables ?

L'exécution de la macro provoque un message d'erreur, ou ne fait simplement pas ce que tu attends ?

Non, elles contiennent deux autres caractères possibles, G et B.

En fait trier sur des "différents de" me permet d'atteindre exactement ce que je veux.

J'ai un traitement différent à faire selon qu'un produit appartient à un groupe défini par une collection. Ce critère d'appartenance de mes produits à un groupe peut prendre 4 valeurs de collection possibles, BNGS

soit B N G pour un groupe de produit que je dois ensuite traiter d'une certaine manière

soit B N S pour les traiter différemment

En triant sur non G ou non S, je sélectionne le bon groupe

si different de G, les produits traités font donc partie de la sélection BNS, (B et N étant commun à tous les articles concernés par un traitement ou l'autre) si différents de S, alors ils font partie de BNG.

Rechercher des sujets similaires à "comparer critere parametre fonction"