Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion Sebast
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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.;-)
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…