Comment sortir d'une boucle avant une MsgBox?
Résolu
Kuartz
Messages postés
852
Date d'inscription
Statut
Membre
Dernière intervention
-
Kuartz Messages postés 852 Date d'inscription Statut Membre Dernière intervention -
Kuartz Messages postés 852 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Ce code permet de lancer une MsgBox sous condition. Par contre, je voudrais qu'elle ne se lance qu'une fois. Donc il faudrait qu'elle soit hors de la boucle. Je ne sais pas comment la faire sortir sans perdre la condition If.
Pourriez-vous m'aider svp?
For i = 13 To DL
If Sheets(1).Range("V" & i).Value - Sheets(1).Range("K" & i).Value <> 0 Then
Sheets(1).Rows(i).Interior.Color = RGB(255, 192, 0)
MsgBox ("ERREUR")
End If
Next i
End Sub
Ce code permet de lancer une MsgBox sous condition. Par contre, je voudrais qu'elle ne se lance qu'une fois. Donc il faudrait qu'elle soit hors de la boucle. Je ne sais pas comment la faire sortir sans perdre la condition If.
Pourriez-vous m'aider svp?
A voir également:
- Vba sortir d'une boucle
- Comment sortir une application d'un dossier samsung - Accueil - Guide Android
- Comment sortir du bios - Forum BIOS
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Sortir un pc du domaine ✓ - Forum Réseau
5 réponses
Bonjour,
Sub test()
For i = 13 To DL
If Sheets(1).Range("V" & i).Value - Sheets(1).Range("K" & i).Value <> 0 Then
Sheets(1).Rows(i).Interior.Color = RGB(255, 192, 0)
MsgBox ("ERREUR")
Exit For
End If
Next i
End Sub
Bonjour et merci pour la réponse.
Cependant, le code ne fonctionne pas comme je le voudrais. En effet, la première ligne concernée est colorée en orange, et la MsgBox apparaît bien. Mais les lignes suivantes concernées ne sont pas colorées alors que le code est fini.
Cordialement.
Cependant, le code ne fonctionne pas comme je le voudrais. En effet, la première ligne concernée est colorée en orange, et la MsgBox apparaît bien. Mais les lignes suivantes concernées ne sont pas colorées alors que le code est fini.
Cordialement.
Re,
C'est dans votre demande que ca coince, mais je vais arranger ca
A+
C'est dans votre demande que ca coince, mais je vais arranger ca
Sub test()
Dim Flag_ERREUR As Boolean
DL = 20
For i = 13 To DL
If Sheets(1).Range("V" & i).Value - Sheets(1).Range("K" & i).Value <> 0 Then
Sheets(1).Rows(i).Interior.Color = RGB(255, 192, 0)
If Not Flag_ERREUR Then
MsgBox ("ERREUR")
End If
Flag_ERREUR = True
End If
Next i
End Sub
A+
Bonjour,
Ceci peut être :
Ceci peut être :
Dim i As Long, Erreur As Boolean
Erreur = False 'ligne inutile mais là pour la compréhension
For i = 13 To DL
If Sheets(1).Range("V" & i).Value - Sheets(1).Range("K" & i).Value <> 0 Then
Sheets(1).Rows(i).Interior.Color = RGB(255, 192, 0)
Erreur = True
End If
Next i
If Erreur Then MsgBox "ERREUR"
End Sub
Merci beaucoup à vous deux !
Tout marche parfaitement. Au risque de trop en demander, pouvez-vous m'expliquer en gros le principe de "Boolean"?
Merci en tout cas.
Cordialement.
Tout marche parfaitement. Au risque de trop en demander, pouvez-vous m'expliquer en gros le principe de "Boolean"?
Merci en tout cas.
Cordialement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
Voilà j'ai ce code, ça fait depuis le début de l'après-midi que je suis dessus...
(Rassurez vous, toutes les variables ont été bien définies avant mais le code complet est très long)
Les MsgBox se comportent exactement comme je le veux. Le problème est que comme j'ai 2 If avec des MsgBox (je ne sais pas faire autrement...), que je réponde quoi que ce soit à la 2ème MsgBox, elle apparaitra 2 fois et ma 2ème réponse donnera le bon comportement.
Merci d'avance encore une fois.
Voilà j'ai ce code, ça fait depuis le début de l'après-midi que je suis dessus...
If MsgBox("Voulez-vous vérifier la TVA sur les débits?", vbYesNo, "Vérif RAN TVA débits") = vbYes Then
For i = 13 To DL
If Sheets(1).Range("D" & i) = "RAN" Then
Sheets(1).Range("B" & i).Select
If MsgBox("La facture suivante (tiers : " & Range("B" & i) & " ) est-elle soummise à TVA sur les débits?", vbYesNoCancel, "Vérif TVA débits") = vbYes Then
Sheets(1).Range("N" & i) = Sheets(1).Range("K" & i)
End If
If MsgBox("La facture suivante est-elle soummise à TVA sur les débits?", vbYesNoCancel, "Vérif TVA débits") = vbCancel Then Exit For
End If
Next i
End If
(Rassurez vous, toutes les variables ont été bien définies avant mais le code complet est très long)
Les MsgBox se comportent exactement comme je le veux. Le problème est que comme j'ai 2 If avec des MsgBox (je ne sais pas faire autrement...), que je réponde quoi que ce soit à la 2ème MsgBox, elle apparaitra 2 fois et ma 2ème réponse donnera le bon comportement.
Merci d'avance encore une fois.
Re,
Pour moi la deuxieme msgbox n'a pas d'utilite ou je n'ai pas tout compris
Pour moi la deuxieme msgbox n'a pas d'utilite ou je n'ai pas tout compris
Sub test()
If MsgBox("Voulez-vous vérifier la TVA sur les débits?", vbYesNo, "Vérif RAN TVA débits") = vbYes Then
For i = 13 To DL
If Sheets(1).Range("D" & i) = "RAN" Then
If MsgBox("La facture suivante (tiers : " & Range("B" & i) & " ) est-elle soummise à TVA sur les débits?", vbYesNoCancel, "Vérif TVA débits") = vbYes Then
Sheets(1).Range("N" & i) = Sheets(1).Range("K" & i)
End If
End If
Next i
End If
End Sub
Re,
Sub test()
DL = 20
If MsgBox("Voulez-vous vérifier la TVA sur les débits?", vbYesNo, "Vérif RAN TVA débits") = vbYes Then
For i = 13 To DL
If Sheets(1).Range("D" & i) = "RAN" Then
retval = MsgBox("La facture suivante (tiers : " & Range("B" & i) & " ) est-elle soummise à TVA sur les débits?", vbYesNoCancel, "Vérif TVA débits")
If retval = vbYes Then
Sheets(1).Range("N" & i) = Sheets(1).Range("K" & i)
ElseIf retval = vbCancel Then
MsgBox "Bye........"
Exit For
End If
End If
Next i
End If
End Sub