Je ne sors pas d'une boucle "multi-critères" !

Sebast

XLDnaute Impliqué
Bonsoir à toutes et à tous,

Je n'arrive pas à sortir d'une boucle "multi-conditions" alors que si je restreins la condition à 1 critère (ex : Reponse <> "s" , le code se poursuit …
pour mémoire, Type:=1 force en numérique et Type:=2 force en texte (chaine)

Quelqu'un a-t-il une idée qui fait que je ne peux pas appliquer plus d'un critère ?
Merci d'avance

xxxxxxxxxxxxx les codes xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sub ChoixTraitement() ' je ne sors pas de la boucle avec ce code
Dim Reponse As Variant
Do While Reponse <> "s" Or Reponse <> "S" Or Reponse <> "m" Or Reponse <> "M"

Reponse = Application.InputBox("Saisissez le type de traitement souhaité : s = semaine, m = mois " + vbCrLf + _
vbCrLf + vbCrLf + "Cette question apparaît tant qu'une réponse valable " + vbCrLf + "ne sera pas saisie !", Type:=2)

Loop
MsgBox "OK, poursuite de la procédure."
End Sub


alors qu'avec un "multi-critère" numérique, ça fonctionne (voir ci-dessous) :

Sub Saisie_mois() ' je sors de la boucle avec ce code
Dim Reponse As Variant
Do While Reponse > 12 Or Reponse <= 0 Or Reponse <> Int(Reponse)

Reponse = Application.InputBox("Saisissez un chiffre entier correspond au mois de " + vbCrLf + _
"l'analyse souhaitée (1 = janvier, 12 = décembre)" _
+ vbCrLf + vbCrLf + "Cette question apparaît tant qu'une réponse valable " + vbCrLf + "ne sera pas saisie !", Type:=1)

Loop
MsgBox "OK, poursuite de la procédure."
End Sub
 

vgendron

XLDnaute Barbatruc
Re : Je ne sors pas d'une boucle "multi-critères" !

Salut
essaie avec
Do While Reponse <> "s" AND Reponse <> "S" AND Reponse <> "m" AND Reponse <> "M"

toi, tu veux une réponse qui soit:
S ou s ou M ou m

et tu testes la condition complémentaire: ce qui devient
non S AND non s AND non M AND non m
 

Sebast

XLDnaute Impliqué
Re : Je ne sors pas d'une boucle "multi-critères" !

Bonjour,

merci pour ton aide : ça marche !
mais je ne comprends tout de même pas, d'un point de vue logique, avec des OR, ça teste pourtant si s ou S ou m ou M alors que pour moi, avec AND, c'est comme si on demandait que soient retenu l'ensemble des conditions et ici je veux bel et bien que ce soit ou l'un ou l'autre et non s ET S

Encore merci
 

vgendron

XLDnaute Barbatruc
Re : Je ne sors pas d'une boucle "multi-critères" !

Hello
dans ton programme:
ce que tu avais en tete c'était il faut demander jusqu'à ce(until) que la réponse soit s ou S ou m ou M
équivalent à Tant que (while) la réponse n'est (NI s) and (ni S) and (ni M) and (ni m)

haaa la logique booleenne.. porte bien son nom des fois.. elle te fout les boules.;-)
 

Sebast

XLDnaute Impliqué
Re : Je ne sors pas d'une boucle "multi-critères" !

Re,

merci beaucoup pour cette précision : avec until, je comprends tout à fait le cheminement et mon code devient :


Dim Reponse As Variant
Do until Reponse = "s" Or Reponse = "S" Or Reponse = "m" Or Reponse = "M"

Reponse = Application.InputBox("Saisissez le type de traitement souhaité : s = semaine, m = mois " + vbCrLf + _
vbCrLf + vbCrLf + "Cette question apparaît tant qu'une réponse valable " + vbCrLf + "ne sera pas saisie !", Type:=2)

Loop
MsgBox "OK, poursuite de la procédure."
End Sub




Bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
312 799
Messages
2 092 239
Membres
105 298
dernier inscrit
doudounapnap