Je voudrai réaliser une macro (au passage, l'affichage d'une image) en
fonction de plusieurs valeurs de cellules.
Exemple:
If Range("A1").Value = 1 ???et/ou??? Range("A2").Value = 2 then l'image 152
s'affiche, etc...
Si possible aussi, comment imbriquer des "ou" dans des "et" ?
Aussi, ou placer les "end if", sachant que si le premier if n'est pas "ok",
un autre suit derrière, etc... (il y en a plus de 200 comme ça, chaque image
étant unique à une valeur...)
Quelques exemples de conditions avec Or, And, Xor, ElseIf, Else, Case
Sub tt() a = 1 b = 2 c = 3
If a = 1 Or b = 1 Then Stop End If
If (a = 1 And b = 1) Or (c = 3) Then Stop End If
If (a = 1 Or b = 1) And (c = 3) Then Stop End If
If (a = 1 Xor b = 2) And (c = 3) Then Stop End If
If a = 1 Then Stop ElseIf a = 2 Then Stop ElseIf a = 3 Then Stop ElseIf a < 10 Then Stop Else Stop End If
a = 2
Select Case a Case 1 'ou Case Is = 1 Stop Case 2 Stop Case 3 Stop Case Is < 10 Stop Case Else Stop End Select
End Sub
docm
"fifigim" a écrit dans le message news:
Bonjour,
Je voudrai réaliser une macro (au passage, l'affichage d'une image) en fonction de plusieurs valeurs de cellules.
Exemple:
If Range("A1").Value = 1 ???et/ou??? Range("A2").Value = 2 then l'image 152
s'affiche, etc...
Si possible aussi, comment imbriquer des "ou" dans des "et" ?
Aussi, ou placer les "end if", sachant que si le premier if n'est pas "ok",
un autre suit derrière, etc... (il y en a plus de 200 comme ça, chaque image
étant unique à une valeur...)
Merci !
Daniel
Bonjour. Voila des exemples : If Range("A1") = 1 Or (Range("A1") = 2 And Range("A2") = 4) Then MsgBox "condition remplie" End If ou If Range("A1") = 1 Then MsgBox "condition remplie" ElseIf Range("A3") <> 1 Then If Range("A1") = 2 Then If Range("A2") = 4 Then MsgBox "condition remplie" End If End If End If Sachant que les conditions sont arbitraires. A ton service. Daniel "fifigim" a écrit dans le message de news:
Bonjour,
Je voudrai réaliser une macro (au passage, l'affichage d'une image) en fonction de plusieurs valeurs de cellules.
Exemple:
If Range("A1").Value = 1 ???et/ou??? Range("A2").Value = 2 then l'image 152 s'affiche, etc...
Si possible aussi, comment imbriquer des "ou" dans des "et" ?
Aussi, ou placer les "end if", sachant que si le premier if n'est pas "ok", un autre suit derrière, etc... (il y en a plus de 200 comme ça, chaque image étant unique à une valeur...)
Merci !
Bonjour.
Voila des exemples :
If Range("A1") = 1 Or (Range("A1") = 2 And Range("A2") = 4) Then
MsgBox "condition remplie"
End If
ou
If Range("A1") = 1 Then
MsgBox "condition remplie"
ElseIf Range("A3") <> 1 Then
If Range("A1") = 2 Then
If Range("A2") = 4 Then
MsgBox "condition remplie"
End If
End If
End If
Sachant que les conditions sont arbitraires.
A ton service.
Daniel
"fifigim" <fifigim@discussions.microsoft.com> a écrit dans le message de
news: 3CB4B05B-DBD7-41A3-A57A-1B33084F637E@microsoft.com...
Bonjour,
Je voudrai réaliser une macro (au passage, l'affichage d'une image) en
fonction de plusieurs valeurs de cellules.
Exemple:
If Range("A1").Value = 1 ???et/ou??? Range("A2").Value = 2 then l'image
152
s'affiche, etc...
Si possible aussi, comment imbriquer des "ou" dans des "et" ?
Aussi, ou placer les "end if", sachant que si le premier if n'est pas
"ok",
un autre suit derrière, etc... (il y en a plus de 200 comme ça, chaque
image
étant unique à une valeur...)
Bonjour. Voila des exemples : If Range("A1") = 1 Or (Range("A1") = 2 And Range("A2") = 4) Then MsgBox "condition remplie" End If ou If Range("A1") = 1 Then MsgBox "condition remplie" ElseIf Range("A3") <> 1 Then If Range("A1") = 2 Then If Range("A2") = 4 Then MsgBox "condition remplie" End If End If End If Sachant que les conditions sont arbitraires. A ton service. Daniel "fifigim" a écrit dans le message de news:
Bonjour,
Je voudrai réaliser une macro (au passage, l'affichage d'une image) en fonction de plusieurs valeurs de cellules.
Exemple:
If Range("A1").Value = 1 ???et/ou??? Range("A2").Value = 2 then l'image 152 s'affiche, etc...
Si possible aussi, comment imbriquer des "ou" dans des "et" ?
Aussi, ou placer les "end if", sachant que si le premier if n'est pas "ok", un autre suit derrière, etc... (il y en a plus de 200 comme ça, chaque image étant unique à une valeur...)
Merci !
papou
Bonjour Dans ton cas, si tu as plusieurs valeurs à tester, il serait peut-être plus judicieux d'utiliser SELECT CASE. Voici un aperçu de ce que dit l'aide dans VBA : Select Case, instruction
Exécute un des blocs d'instructions indiqués, selon la valeur d'une expression.
Syntaxe
Select Case testexpression
[Case expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]]
End Select
La syntaxe de l'instruction Select Case comprend les éléments suivants :
Élément Description
testexpression Toute expression numérique ou expression de chaîne.
expressionlist-n Si une instruction Case apparaît. Liste délimitée dont les éléments peuvent prendre l'une des formes suivantes : expression, expression To expression, Is comparisonoperator expression. Le mot clé To indique une plage de valeurs. Si vous utilisez To, la valeur la plus petite doit figurer avant To. Utilisez le mot clé Is avec les opérateurs de comparaison (sauf Is et Like) pour indiquer une plage de valeurs. S'il n'est pas indiqué, le mot clé Is est inséré automatiquement.
statements-n Facultatif. Une ou plusieurs instructions exécutées si testexpression correspond à l'un des éléments de expressionlist-n.
elsestatements Facultatif. Une ou plusieurs instructions exécutées si testexpression ne correspond à aucun élément de la clause Case.
Remarques
Si testexpression correspond à un élément de la liste expressionlist associé à une clause Case, le bloc d'instructions qui suit cette clause est exécuté jusqu'à la clause Case suivante ou jusqu'à End Select, dans le cas de la dernière clause. Le contrôle passe ensuite à l'instruction qui suit End Select. Si expressiontest correspond à une expression de la liste expressionlist dans plusieurs clauses Case, seules les instructions qui suivent la première correspondance sont exécutées.
La clause Case Else permet d'indiquer que elsestatements doit être exécutée si testexpression ne correspond à aucune autre clause Case. Bien que cela ne soit pas indispensable, la présence d'une instruction Case Else dans votre bloc Select Case peut être utile lorsque testexpression prend des valeurs inattendues. S'il n'y a pas d'instruction Case Else et si aucune des expressions des clauses Case ne correspond à testexpression, l'exécution du programme se poursuit à partir de l'instruction qui suit End Select.
Vous pouvez utiliser plusieurs expressions ou plages dans chaque clause Case. En voici un exemple :
Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber
Note L'opérateur de comparaison Is ne joue pas le même rôle que le mot clé Is utilisé dans l'instruction Select Case.
Vous pouvez aussi indiquer des plages et des expressions multiples pour des chaînes de caractères. Dans l'exemple suivant, Case correspond aux chaînes de caractères qui sont absolument identiques à tout, aux chaînes comprises entre noix et soupe dans l'ordre alphabétique, ainsi qu'à la valeur en cours de TestItem :
Case "tout", "noix" To "soupe", TestItem
Les instructions Select Case peuvent être imbriquées. À chaque instruction Select Case doit correspondre une instructions End Select
Cordialement Pascal
"fifigim" a écrit dans le message de news:
Bonjour,
Je voudrai réaliser une macro (au passage, l'affichage d'une image) en fonction de plusieurs valeurs de cellules.
Exemple:
If Range("A1").Value = 1 ???et/ou??? Range("A2").Value = 2 then l'image 152 s'affiche, etc...
Si possible aussi, comment imbriquer des "ou" dans des "et" ?
Aussi, ou placer les "end if", sachant que si le premier if n'est pas "ok", un autre suit derrière, etc... (il y en a plus de 200 comme ça, chaque image étant unique à une valeur...)
Merci !
Bonjour
Dans ton cas, si tu as plusieurs valeurs à tester, il serait peut-être plus
judicieux d'utiliser SELECT CASE.
Voici un aperçu de ce que dit l'aide dans VBA :
Select Case, instruction
Exécute un des blocs d'instructions indiqués, selon la valeur d'une
expression.
Syntaxe
Select Case testexpression
[Case expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]]
End Select
La syntaxe de l'instruction Select Case comprend les éléments suivants :
Élément Description
testexpression Toute expression numérique ou expression de chaîne.
expressionlist-n Si une instruction Case apparaît. Liste délimitée dont les
éléments peuvent prendre l'une des formes suivantes : expression, expression
To expression, Is comparisonoperator expression. Le mot clé To indique une
plage de valeurs. Si vous utilisez To, la valeur la plus petite doit figurer
avant To. Utilisez le mot clé Is avec les opérateurs de comparaison (sauf Is
et Like) pour indiquer une plage de valeurs. S'il n'est pas indiqué, le mot
clé Is est inséré automatiquement.
statements-n Facultatif. Une ou plusieurs instructions exécutées si
testexpression correspond à l'un des éléments de expressionlist-n.
elsestatements Facultatif. Une ou plusieurs instructions exécutées si
testexpression ne correspond à aucun élément de la clause Case.
Remarques
Si testexpression correspond à un élément de la liste expressionlist associé
à une clause Case, le bloc d'instructions qui suit cette clause est exécuté
jusqu'à la clause Case suivante ou jusqu'à End Select, dans le cas de la
dernière clause. Le contrôle passe ensuite à l'instruction qui suit End
Select. Si expressiontest correspond à une expression de la liste
expressionlist dans plusieurs clauses Case, seules les instructions qui
suivent la première correspondance sont exécutées.
La clause Case Else permet d'indiquer que elsestatements doit être exécutée
si testexpression ne correspond à aucune autre clause Case. Bien que cela ne
soit pas indispensable, la présence d'une instruction Case Else dans votre
bloc Select Case peut être utile lorsque testexpression prend des valeurs
inattendues. S'il n'y a pas d'instruction Case Else et si aucune des
expressions des clauses Case ne correspond à testexpression, l'exécution du
programme se poursuit à partir de l'instruction qui suit End Select.
Vous pouvez utiliser plusieurs expressions ou plages dans chaque clause
Case. En voici un exemple :
Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber
Note L'opérateur de comparaison Is ne joue pas le même rôle que le mot clé
Is utilisé dans l'instruction Select Case.
Vous pouvez aussi indiquer des plages et des expressions multiples pour des
chaînes de caractères. Dans l'exemple suivant, Case correspond aux chaînes
de caractères qui sont absolument identiques à tout, aux chaînes comprises
entre noix et soupe dans l'ordre alphabétique, ainsi qu'à la valeur en cours
de TestItem :
Case "tout", "noix" To "soupe", TestItem
Les instructions Select Case peuvent être imbriquées. À chaque instruction
Select Case doit correspondre une instructions End Select
Cordialement
Pascal
"fifigim" <fifigim@discussions.microsoft.com> a écrit dans le message de
news: 3CB4B05B-DBD7-41A3-A57A-1B33084F637E@microsoft.com...
Bonjour,
Je voudrai réaliser une macro (au passage, l'affichage d'une image) en
fonction de plusieurs valeurs de cellules.
Exemple:
If Range("A1").Value = 1 ???et/ou??? Range("A2").Value = 2 then l'image
152
s'affiche, etc...
Si possible aussi, comment imbriquer des "ou" dans des "et" ?
Aussi, ou placer les "end if", sachant que si le premier if n'est pas
"ok",
un autre suit derrière, etc... (il y en a plus de 200 comme ça, chaque
image
étant unique à une valeur...)
Bonjour Dans ton cas, si tu as plusieurs valeurs à tester, il serait peut-être plus judicieux d'utiliser SELECT CASE. Voici un aperçu de ce que dit l'aide dans VBA : Select Case, instruction
Exécute un des blocs d'instructions indiqués, selon la valeur d'une expression.
Syntaxe
Select Case testexpression
[Case expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]]
End Select
La syntaxe de l'instruction Select Case comprend les éléments suivants :
Élément Description
testexpression Toute expression numérique ou expression de chaîne.
expressionlist-n Si une instruction Case apparaît. Liste délimitée dont les éléments peuvent prendre l'une des formes suivantes : expression, expression To expression, Is comparisonoperator expression. Le mot clé To indique une plage de valeurs. Si vous utilisez To, la valeur la plus petite doit figurer avant To. Utilisez le mot clé Is avec les opérateurs de comparaison (sauf Is et Like) pour indiquer une plage de valeurs. S'il n'est pas indiqué, le mot clé Is est inséré automatiquement.
statements-n Facultatif. Une ou plusieurs instructions exécutées si testexpression correspond à l'un des éléments de expressionlist-n.
elsestatements Facultatif. Une ou plusieurs instructions exécutées si testexpression ne correspond à aucun élément de la clause Case.
Remarques
Si testexpression correspond à un élément de la liste expressionlist associé à une clause Case, le bloc d'instructions qui suit cette clause est exécuté jusqu'à la clause Case suivante ou jusqu'à End Select, dans le cas de la dernière clause. Le contrôle passe ensuite à l'instruction qui suit End Select. Si expressiontest correspond à une expression de la liste expressionlist dans plusieurs clauses Case, seules les instructions qui suivent la première correspondance sont exécutées.
La clause Case Else permet d'indiquer que elsestatements doit être exécutée si testexpression ne correspond à aucune autre clause Case. Bien que cela ne soit pas indispensable, la présence d'une instruction Case Else dans votre bloc Select Case peut être utile lorsque testexpression prend des valeurs inattendues. S'il n'y a pas d'instruction Case Else et si aucune des expressions des clauses Case ne correspond à testexpression, l'exécution du programme se poursuit à partir de l'instruction qui suit End Select.
Vous pouvez utiliser plusieurs expressions ou plages dans chaque clause Case. En voici un exemple :
Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber
Note L'opérateur de comparaison Is ne joue pas le même rôle que le mot clé Is utilisé dans l'instruction Select Case.
Vous pouvez aussi indiquer des plages et des expressions multiples pour des chaînes de caractères. Dans l'exemple suivant, Case correspond aux chaînes de caractères qui sont absolument identiques à tout, aux chaînes comprises entre noix et soupe dans l'ordre alphabétique, ainsi qu'à la valeur en cours de TestItem :
Case "tout", "noix" To "soupe", TestItem
Les instructions Select Case peuvent être imbriquées. À chaque instruction Select Case doit correspondre une instructions End Select
Cordialement Pascal
"fifigim" a écrit dans le message de news:
Bonjour,
Je voudrai réaliser une macro (au passage, l'affichage d'une image) en fonction de plusieurs valeurs de cellules.
Exemple:
If Range("A1").Value = 1 ???et/ou??? Range("A2").Value = 2 then l'image 152 s'affiche, etc...
Si possible aussi, comment imbriquer des "ou" dans des "et" ?
Aussi, ou placer les "end if", sachant que si le premier if n'est pas "ok", un autre suit derrière, etc... (il y en a plus de 200 comme ça, chaque image étant unique à une valeur...)
Merci !
Alexsolex®
Pour les opérateur et ou je pense pouvoir t'aider :
If Range("A1").Value = 1 AND Range("A2").Value = 2 then
if (a OR b) AND (c OR d) then ' ceci est une imbrication
Je pense être dans le bon mais des fois je me mélange avec d'autres langages...
"fifigim" a écrit dans le message de news:
Bonjour,
Je voudrai réaliser une macro (au passage, l'affichage d'une image) en fonction de plusieurs valeurs de cellules.
Exemple:
If Range("A1").Value = 1 ???et/ou??? Range("A2").Value = 2 then l'image 152
s'affiche, etc...
Si possible aussi, comment imbriquer des "ou" dans des "et" ?
Aussi, ou placer les "end if", sachant que si le premier if n'est pas "ok",
un autre suit derrière, etc... (il y en a plus de 200 comme ça, chaque image
étant unique à une valeur...)
Merci !
Pour les opérateur et ou je pense pouvoir t'aider :
If Range("A1").Value = 1 AND Range("A2").Value = 2 then
if (a OR b) AND (c OR d) then ' ceci est une imbrication
Je pense être dans le bon mais des fois je me mélange avec d'autres
langages...
"fifigim" <fifigim@discussions.microsoft.com> a écrit dans le message de
news:3CB4B05B-DBD7-41A3-A57A-1B33084F637E@microsoft.com...
Bonjour,
Je voudrai réaliser une macro (au passage, l'affichage d'une image) en
fonction de plusieurs valeurs de cellules.
Exemple:
If Range("A1").Value = 1 ???et/ou??? Range("A2").Value = 2 then l'image
152
s'affiche, etc...
Si possible aussi, comment imbriquer des "ou" dans des "et" ?
Aussi, ou placer les "end if", sachant que si le premier if n'est pas
"ok",
un autre suit derrière, etc... (il y en a plus de 200 comme ça, chaque
image