Comment sortir d'une boucle avant une MsgBox?
Résolu/Fermé
Kuartz
Messages postés
852
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
-
3 juil. 2015 à 11:27
Kuartz Messages postés 852 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 3 juil. 2015 à 17:21
Kuartz Messages postés 852 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 3 juil. 2015 à 17:21
A voir également:
- Vba sortir d'une boucle
- Excel compter cellule couleur sans vba - Guide
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Find vba - Astuces et Solutions
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Comment sortir une application d'un dossier - Accueil - Guide Android
5 réponses
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
3 juil. 2015 à 12:07
3 juil. 2015 à 12:07
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
Kuartz
Messages postés
852
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
3 juil. 2015 à 15:53
3 juil. 2015 à 15:53
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.
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
3 juil. 2015 à 16:11
3 juil. 2015 à 16:11
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+
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
3 juil. 2015 à 16:05
3 juil. 2015 à 16:05
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
Kuartz
Messages postés
852
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
3 juil. 2015 à 16:19
3 juil. 2015 à 16:19
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.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
Modifié par pijaku le 3/07/2015 à 16:21
Modifié par pijaku le 3/07/2015 à 16:21
Une variable de type boolean n'admet que 2 valeurs 0 ou 1 (Faux ou vrai).
Elle est systématiquement définie (initialisée) sur False.
Elle est systématiquement définie (initialisée) sur False.
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
3 juil. 2015 à 16:23
3 juil. 2015 à 16:23
Re,
Salut pijaku, ca flotte
Kuartz:
un type de données Boolean est un type de données avec seulement deux valeurs possibles: vrai ou faux. (en francais)
In most computer programming languages, a Boolean data type is a data type with only two possible values: true or false. (en anglais)
Salut pijaku, ca flotte
Kuartz:
un type de données Boolean est un type de données avec seulement deux valeurs possibles: vrai ou faux. (en francais)
In most computer programming languages, a Boolean data type is a data type with only two possible values: true or false. (en anglais)
Kuartz
Messages postés
852
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
3 juil. 2015 à 16:25
3 juil. 2015 à 16:25
D'accord. Excellent moyen pour placer ma MsgBox en tout cas. Mais il fallait y penser.
Kuartz
Messages postés
852
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
3 juil. 2015 à 16:26
3 juil. 2015 à 16:26
Ca vous dérange si je pose une autre petite dernière question concernant des MsgBox ici?
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
>
Kuartz
Messages postés
852
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
3 juil. 2015 à 16:27
3 juil. 2015 à 16:27
Re,
Non, posez votre question
Non, posez votre question
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Kuartz
Messages postés
852
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
3 juil. 2015 à 16:33
3 juil. 2015 à 16:33
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.
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
3 juil. 2015 à 16:45
3 juil. 2015 à 16:45
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
Kuartz
Messages postés
852
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
>
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
3 juil. 2015 à 16:53
3 juil. 2015 à 16:53
Re,
Pardon je dois mal m'expliquer. En fait, j'aurais voulu que le bouton Cancel de la 2ème MsgBox de votre code ci-dessus arrête la vérification de la TVA sur les débits. En gros, si je clique sur le bouton "Annuler", j'aurais voulu que l'on passe immédiatement à la suite du code.
Pardon je dois mal m'expliquer. En fait, j'aurais voulu que le bouton Cancel de la 2ème MsgBox de votre code ci-dessus arrête la vérification de la TVA sur les débits. En gros, si je clique sur le bouton "Annuler", j'aurais voulu que l'on passe immédiatement à la suite du code.
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
>
Kuartz
Messages postés
852
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
3 juil. 2015 à 17:10
3 juil. 2015 à 17:10
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
Kuartz
Messages postés
852
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
>
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
3 juil. 2015 à 17:21
3 juil. 2015 à 17:21
Merci pour ce nouvel outil dont je vais abuser et réabuser à l'infini : "retval"
Je vous remercie pour le temps passé à m'aider et pour vos compétences.
Cordialement.
Je vous remercie pour le temps passé à m'aider et pour vos compétences.
Cordialement.