EDIT: Je l'ai trouvé moi-même. Je me sens plutôt bête, mais remplacer "Exit Sub" par "End" fonctionne parfaitement. Contexte: J'ai un Sub qui utilise la fonction "Call" pour exécuter plusieurs sous-sous-réseaux dans un Sub (voir Code # 1 ci-dessous).xlDialogSaveAs - Termine le code ALL si "cancel" est sélectionné
Option Explicit
Sub MIUL_Run_All()
Dim StartTime As Double
Dim SecondsElapsed As String
'Remember time when macro starts
StartTime = Timer
Call OptimizeCode_Begin
Call Format_MIUL
Call Custom_Sort_MIUL
Call Insert_Process_List
Call Format_Process_List
Call OptimizeCode_End
'Determine how many seconds code took to run
SecondsElapsed = Format((Timer - StartTime)/86400, "ss")
'Notify user in seconds
MsgBox "This code ran successfully in " & SecondsElapsed & " seconds", vbInformation
End Sub
Mon premier code qui est appelé, « Format_MIUL », invite l'utilisateur à enregistrer le fichier, en utilisant la ligne de code suivante (voir code 2 ci-dessous). Ce code fonctionne, mais le problème est que si l'utilisateur appuie sur le bouton "Annuler", le reste du code appelé dans le sous-code principal (Code # 1 ci-dessus) continuera à fonctionner. Je veux que tout le code s'arrête si l'utilisateur appuie sur le bouton d'annulation. Je n'arrive pas à comprendre comment faire ça.
'Save file as .xlsm
MsgBox " Save as Excel Workbook (.xlsx)!"
Dim userResponse As Boolean
On Error Resume Next
userResponse = Application.Dialogs(xlDialogSaveAs).Show(, 51)
On Error GoTo 0
If userResponse = False Then
Exit Sub
Else
End If
Toute aide est grandement appréciée.
Je me sens plutôt bête, mais remplacer "Exit Sub" par "End" fonctionne parfaitement. – CC268
S'il vous plaît écrivez une réponse à votre question afin que d'autres puissent trouver une solution à des problèmes similaires – Maldred
Neater est de convertir Format_MIUL à une fonction qui retourne VRAI lorsqu'il est sauvegardé et Faux quand vous ne l'appelez pas: Si Format_Miu Alors 'Other appels Fin Si – jkpieterse