MsgBox successives
Résolu/Fermé
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
-
2 juil. 2015 à 15:22
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 7 juil. 2015 à 10:57
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 7 juil. 2015 à 10:57
6 réponses
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
26
Modifié par PlacageGranby le 2/07/2015 à 16:29
Modifié par PlacageGranby le 2/07/2015 à 16:29
Bonjour,
Je crois qu'il suffirait de déplacer la ligne du msgbox3
(au lieu d'utiliser les variable msgbox2 et msgbox3, j'ai directement utiliser msgbox dans les IF)
Aussi, tu peux ajouter des données dynamiquement dans ton msgbox.
Exemple, si tu as un # de facture dans ta colonne A.
Je crois qu'il suffirait de déplacer la ligne du msgbox3
(au lieu d'utiliser les variable msgbox2 et msgbox3, j'ai directement utiliser msgbox dans les IF)
If MsgBox("Voulez-vous remplir la TVA intracom à 19.6%?", vbYesNo, "Remplissage TVA intracom 19.6%") = vbYes Then For i = 13 To DL If Sheets(1).Range("D" & i) = "RAN" Then Sheets(1).Range("P" & i).Select If MsgBox("Cette facture est-elle soummise à TVA intracom à 19.6%?", vbYesNo, "Vérification") = vbYes Then Sheets(1).Range("P" & i) = Sheets(1).Range("K" & i) End If End If Next i End If
Aussi, tu peux ajouter des données dynamiquement dans ton msgbox.
Exemple, si tu as un # de facture dans ta colonne A.
msgbox("La facture # " & Sheets(1).Range("A" & i).value & " est-elle soummise à TVA intracom à 19.6%?", vbYesNo, "Vérification")
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
2 juil. 2015 à 16:47
2 juil. 2015 à 16:47
Merci beaucoup de m'avoir simplifié tout ça. Je crois que j'étais en train de me perdre avec toutes ces conditions.
Je voulais simplement savoir, si à la place de vouloir le numéro de facture dans la MsgBox, je voulais directement avoir la TVA, soit un calcul qui ferait ARRONDI(Cellule K * 0.196;2). Est-ce possible?
Merci d'avance.
Cordialement.
Je voulais simplement savoir, si à la place de vouloir le numéro de facture dans la MsgBox, je voulais directement avoir la TVA, soit un calcul qui ferait ARRONDI(Cellule K * 0.196;2). Est-ce possible?
Merci d'avance.
Cordialement.
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
26
2 juil. 2015 à 16:56
2 juil. 2015 à 16:56
Bonjour,
Si on résume :
va vous afficher "2 + 2 = 4"
On peut concatèner des calculs et du texte
Si on résume :
MsgBox ("2 + 2 = " & 2 + 2)
va vous afficher "2 + 2 = 4"
On peut concatèner des calculs et du texte
msgbox ("valeur TVA : " & round(range("K" & i).value * 0.196,2) & " et voila")
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
2 juil. 2015 à 17:14
2 juil. 2015 à 17:14
Ah super sympa merci ça marche super bien.
Vraiment merci de m'aider, j'essaye d'apprendre et je me donne à fond.
Cordialement.
Vraiment merci de m'aider, j'essaye d'apprendre et je me donne à fond.
Cordialement.
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
3 juil. 2015 à 09:45
3 juil. 2015 à 09:45
Supposons que je souhaite maintenant ajouter à cette macro un bouton "Cancel" qui me fera sortir de la boucle (si je me rend compte que j'ai trop de "RAN" et que je souhaite passer tout de suite à la suite du code).
Comment je peux m'y prendre svp?
Merci d'avance.
Cordialement.
Comment je peux m'y prendre svp?
Merci d'avance.
Cordialement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
3 juil. 2015 à 09:57
3 juil. 2015 à 09:57
J'ai essayé le code suivant :
Mais la MsgBox apparaît souvent 2 fois....
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) ElseIf MsgBox("La facture suivante (tiers : " & Range("B" & i) & " ) est-elle soummise à TVA sur les débits?", vbYesNoCancel, "Vérif TVA débits") = vbCancel Then Exit For End If End If Next i End If
Mais la MsgBox apparaît souvent 2 fois....
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
3 juil. 2015 à 10:10
3 juil. 2015 à 10:10
J'ai aussi essayé ce code, mais la MsgBox se lance 2 fois à chaque fois...
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 (tiers : " & Range("B" & i) & " ) est-elle soummise à TVA sur les débits?", vbYesNoCancel, "Vérif TVA débits") = vbCancel Then Exit For End If Next i End If
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
26
6 juil. 2015 à 14:34
6 juil. 2015 à 14:34
Bonjour,
Le Msgbox apparait deux fois car il est appeler deux fois (dans chacun des IF).
Pour éviter cela, on va utiliser une variable (un peu comme votre code initial) et valider avec des elseif
Prendre note que le restant du code après la boucle s'effectue avec un Exit For .
Si vous voulez complètement sortir, alors un Exit Sub ferait l'affaire.
Le Msgbox apparait deux fois car il est appeler deux fois (dans chacun des IF).
Pour éviter cela, on va utiliser une variable (un peu comme votre code initial) et valider avec des elseif
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 msgbox2 = MsgBox("La facture suivante (tiers : " & Range("B" & i) & " ) est-elle soummise à TVA sur les débits?", vbYesNoCancel, "Vérif TVA débits") If msgbox2 = vbYes Then Sheets(1).Range("N" & i) = Sheets(1).Range("K" & i) elseIf msgbox2 = vbCancel then exit For End if End If Next i End If
Prendre note que le restant du code après la boucle s'effectue avec un Exit For .
Si vous voulez complètement sortir, alors un Exit Sub ferait l'affaire.
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
61
7 juil. 2015 à 10:57
7 juil. 2015 à 10:57
Merci beaucoup. Il s'agit en effet d'un Exit For dont j'ai besoin, il faut que le code suivant s'exécute en cas de "Cancel". Merci pour tout.