Boucle Do + IF imbriqué + msgbox : problème

Anonyme
2024-01-19T12:49:49+00:00

Bonjour à tous,

J'ai un petit souci avec une boucle conditionnelle.

Ce que je veux : on doit vérifier si l'incertitude est un paramètre de vérification ou pas. Donc j'ai une InputBox qui surgit avec un message : "Si l'incertitude est un critère de vérification rentrez : oui." & Chr(10) & "Si l'incertitude n'est pas un critère de vérification rentrez : non." De là, si mon InputBox = "oui" il y a une message box qui apparait avec comme message : "L'incertitude est-elle un critère de vérification ?", si on clique sur oui c'est bon si on clique sur non ça repart au début. Si mon InputBox= "non" il y a une MsgBox qui surgit : "L'incertitude n'est pas un critère de vérification ?", si on clique sur oui c'est bon fin de la boucle, si on clique sur non ça recommence.

mon code est le suivant :

Sub Bouton2_Cliquer()

Dim incert As String

Do

incert = InputBox("Si l'incertitude est un critère de vérification rentrez : oui." & Chr(10) & "Si l'incertitude n'est pas un critère de vérification rentrez : non.", "Incertitude (g)")

If incert = oui Then

ElseIf MsgBox("L'incertitude est-elle un critère de vérification ?", vbYesNo, "Confirmation vérification de l'incertitude.") = vbYes Then

ElseIf incert = non Then

ElseIf MsgBox("L'incertitude n'est pas un critère de vérification ?", vbYesNo, "Confirmation vérification de l'incertitude.") = vbYes Then

End If

Exit Do

Loop While True

Range("E18") = incert

End Sub

Il bloque à plusieurs niveaux. J'ai essayé de mettre des If des Else mais j'ai du mal. J'ai essayé de décaler les End If avec des tabulations ça ne marche pas non plus...

J'ai cette macro qui marche dans une moindre mesure mais il y a peu de conditions :

Dim répé As String

Do

répé = InputBox("Rentrez la valeur de répétabilité en gramme." & Chr(10) & "Si la répétabilité n'est pas utilisée rentrez / .", "Répétabilité (g)")

If MsgBox("La valeur de répétabilité est bien " & répé & " gramme ?", vbYesNo, "Confirmation saisi répétabilité.") = vbYes Then

Exit Do

End If

Loop While True

Range("E15") = répé

Ce que je voulais sur cette macro c'était que, si je ne confirme pas mon répé, ça boucle.

Merci d'avoir lu !

Microsoft 365 et Office | Excel | Pour les entreprises | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

Hecatonchire 53,870 Points de réputation Modérateur bénévole
2024-01-19T13:31:29+00:00

Bonjour,

Je ferais plus : (non testé)

Sub Bouton2_Cliquer()

Dim incert As String

Do

incert = InputBox("Si l'incertitude est un critère de vérification rentrez : oui." & Chr(10) & "Si l'incertitude n'est pas un critère de vérification rentrez : non.", "Incertitude (g)")  

If incert = **"**oui**"** Then  

	If MsgBox("L'incertitude est-elle un critère de vérification ?", vbYesNo, "Confirmation vérification de l'incertitude.") = vbYes Then  

		exit do 

	end if 

ElseIf incert = "non" Then  

	If MsgBox("L'incertitude n'est pas un critère de vérification ?", vbYesNo, "Confirmation vérification de l'incertitude.") = vbYes Then  

		exit do 

	End If 

end if  

Loop While True

Range("E18") = incert

End Sub

Cette réponse a-t-elle été utile ?

2 personnes ont trouvé cette réponse utile.
0 commentaires Aucun commentaire

2 réponses supplémentaires

  1. Anonyme
    2024-01-19T13:36:36+00:00

    Parfait ça marche comme je veux !

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2024-01-19T13:18:59+00:00

    J'ai fait un petit logigramme de ce que je veux que ça fasse si c'est plus facile à comprendre

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire