У меня возникли проблемы со следующим кодом:Loop в моей MsgBox - Ошибка
Sub Option_choice()
Dim Choice_box As String
Do
Choice_box = InputBox("Quel état souhaitez-vous restituer ?" & _
vbCrLf & "Entrez la valeur 1, 2 ou 3" & _
vbCrLf & vbCrLf & vbTab & "1 - Bilan" & _
vbCrLf & vbTab & "2 - Compte de résultat" & _
vbCrLf & vbTab & "3 - Hors bilan", vbQuestion, "Entrez la valeur 1, 2 ou 3")
Select Case Choice_box
Case "1"
MsgBox ("Bilan")
Case "2"
MsgBox ("Compte de résultat")
Case "3"
MsgBox ("Hors bilan")
Case Else
MsgBox "Vous devez sélectionner une valeur égale à 1, 2 ou 3" & _
vbCrLf & vbCrLf & "Désirez-vous continuer ?", vbYesNo + vbExclamation, "Erreur"
If vbYes Then
Loop
ElseIf vbNo Then
MsgBox "Fin de l'opération, aucun état n'a été généré", vbInformation, "Fin du programme"
Else
'rien
End If
End Select
End Sub
Я просто хотел бы повторить MsgBox
с самого начала, когда ответ на следующий вопрос NO
:
MsgBox "Vous devez sélectionner une valeur égale à 1, 2 ou 3" & _
vbCrLf & vbCrLf & "Désirez-vous continuer ?", vbYesNo + vbExclamation, "Erreur"
Он говорит:
"Loop Error без Do"
Не могли бы вы помочь?
Спасибо,
Жан
Вы не можете иметь чередующиеся блоки в VBA. Ваш «Loop» должен быть после «End Select», и вы можете использовать 'Exit Do' в ветке' vbNo' для выхода из цикла, если это необходимо. –
Обратите внимание, что вы не возвращаете возвращаемое значение MsgBox и констант тестирования в следующих выражениях 'If ... ElseIf'. –
@VincentG Я обновил свой код и установил переменную для своего ответа (VbYesNo). –