(VBA) MsgBox à lancer sous conditions dans le déroulé macro.
Résolu/Fermé
Gilles.DR315
Messages postés
26
Date d'inscription
samedi 2 novembre 2013
Statut
Membre
Dernière intervention
27 janvier 2015
-
Modifié par Gilles.DR315 le 22/01/2014 à 10:52
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 22 janv. 2014 à 11:07
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 22 janv. 2014 à 11:07
A voir également:
- (VBA) MsgBox à lancer sous conditions dans le déroulé macro.
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Liste déroulante dans excel - Guide
- Macro logiciel - Télécharger - Organisation
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
22 janv. 2014 à 10:35
22 janv. 2014 à 10:35
Bonjour,
Peut être...
If (Sheets("Résultat").Range("F9") = 5 And Sheets("Résultat").Range("H24") <> 0 And Sheets("Résultat").Range("D15") <> "") Then If MsgBox("Voulez vous maintenir la durée ?", vbQuestion + vbYesNo, "QUESTION ...") = vbYes Then Sheets("Résultat").Range("D15") = Sheets("Résultat").Range("G15") Call Simuler Else Sheets("Résultat").Range("D15") = Sheets("Résultat").Range("K15") Call Simuler End If End If
Peut être...
Gilles.DR315
Messages postés
26
Date d'inscription
samedi 2 novembre 2013
Statut
Membre
Dernière intervention
27 janvier 2015
1
Modifié par pijaku le 22/01/2014 à 11:03
Modifié par pijaku le 22/01/2014 à 11:03
En effet çà fonctionne.
et j'avais une erreur dans les conditions sur D15. ce qui permet d'éviter le message en boucle
Merci
je ne savais pas que End If pouvait se mettre 2 fois à la suite. Pour valider la syntaxe du code
et j'avais une erreur dans les conditions sur D15. ce qui permet d'éviter le message en boucle
Merci
je ne savais pas que End If pouvait se mettre 2 fois à la suite. Pour valider la syntaxe du code
If (Sheets("Résultat").Range("F9") = 5 And Sheets("Résultat").Range("H24") <> 0 And Sheets("Résultat").Range("D15") = "") Then If MsgBox("Voulez vous maintenir la durée ?", vbQuestion + vbYesNo, "QUESTION ...") = vbYes Then Sheets("Résultat").Range("D15") = Sheets("Résultat").Range("G15") Call simuler Else Sheets("Résultat").Range("D15") = Sheets("Résultat").Range("K15") Call simuler End If End If
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
22 janv. 2014 à 11:07
22 janv. 2014 à 11:07
End Ifferme le bloc
If.
Tu peux en avoir x à la suite, si tu as ouvert x blocs
If...
Par contre, je te recommande d'indenter ton code. Non seulement ce sera plus lisible, mais en plus ça t'évitera de ne pas fermer un bloc.
Exemple non indenté :
Sub Machin() If (Sheets("Résultat").Range("F9") = 5 And Sheets("Résultat").Range("H24") <> 0 And Sheets("Résultat").Range("D15") = "") Then If MsgBox("Voulez vous maintenir la durée ?", vbQuestion + vbYesNo, "QUESTION ...") = vbYes Then Sheets("Résultat").Range("D15") = Sheets("Résultat").Range("G15") Call Simuler Else Sheets("Résultat").Range("D15") = Sheets("Résultat").Range("K15") Call Simuler End If End Sub
Exemple indenté :
Sub Machin() If (Sheets("Résultat").Range("F9") = 5 And Sheets("Résultat").Range("H24") <> 0 And Sheets("Résultat").Range("D15") = "") Then If MsgBox("Voulez vous maintenir la durée ?", vbQuestion + vbYesNo, "QUESTION ...") = vbYes Then Sheets("Résultat").Range("D15") = Sheets("Résultat").Range("G15") Call Simuler Else Sheets("Résultat").Range("D15") = Sheets("Résultat").Range("K15") Call Simuler End If End Sub
Dans le second exemple, on voit clairement qu'il manque quelque chose.
Nota : ces exemples sont simplistes. C'est encore plus vrai sur des codes plus longs et plus complexes...