Déjà, dans ton premier code de bloc, supprime le Exit Sub. C'est une mauvaise habitude de mettre des Exit Sub dans ton code. Il te suffit, à la ligne 131, de changer le vbNo en vbYes et de supprimer les lignes 132 et 133.
Comme je l'avais suggéré précédemment, tu devrais découper ton code en procédures qui ne font qu'une chose! A minima, l'ouverture, le traitement et la sauvegarde du fichier sont trois choses différentes et doivent donc être placées dans trois procédures différentes. Le code tel que tu le proposes nous met dans l'impossibilité de tester ta macro.
Après la ligne 131, je ne vois pas d'appel aux procédures de test d'existence et de création du dossier. Je ne vois donc pas comment tu pourrais avoir un problème sur la ligne MKDIR. Tu devrais avoir une procédure qui sauvegarde (ou pas) ton fichier, et qui remplacerait les lignes 131 et suivantes... Ici, pour simplifier le code, j'ai laissé tomber les procédures que je t'ai données précédemment. Perso, je préfère les utiliser pour mieux découper le code (la création du dossier pourrait s'avérer plus complexe si le dossier parent du dossier à créer n'existe pas, mais on va faire simple dans un premier temps).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub SaveFile() Dim Filename As String Dim Path As String If MsgBox("Do you want...", vbQuestion + vbYesNo, "Confirmation Request") = vbYes Then Filename = "FOLLOW_UP_TESTIA_" & Format(Date, "yyyymmdd") & "_" & Format(Time, "hhmmss") & ".xlsm" Path = InputBox("Select...", "Backup Folder", "C:\Backup_NDT_TESTIA\") If Dir(Path, vbDirectory) = "" Then MkDir Path ActiveWorkbook.SaveCopyAs Path & Filename End If End Sub
Partager