VBA: Macro créer le dossier se il ne existe pas


Lorsque vous essayez d'enregistrer un chemin d'accès dans Visual Basic. Ne seront pas automatiquement créé se il ne existe pas le chemin du fichier.

Prenons l'exemple suivant:




Sub test ()
ActiveWorkbook.SaveAs ("C: \ Test \ Test.xls")
End Sub

Nous voulons sauver le classeur actif dans le dossier C: \ Test, si ce dossier ne existe pas de recevoir l'erreur suivante:

La Solution

Vérifiez si le chemin existe (si le chemin existe, sa longueur sera retourné, sinon ce sera zéro)

Si Len (Dir (Chemin, vbDirectory)) = 0 Then

Si vous ne créez pas le répertoire

MkDir ("C: \ Test»)

Le résultat final

Sub test () Chemin Dim As String Path = "C: \ Test" Si Len (Dir (Chemin, vbDirectory)) = 0 Then MkDir (Path) End If ActiveWorkbook.SaveAs (Chemin & "\ Test.xls") End Sub

Une remarque importante

Le MkDir fonction fonctionne uniquement si le dossier existe de procéder à la dernière

Par exemple, si vous souhaitez enregistrer le chemin C: Macro \ \ Test \ Test.xls

Vous aurez d'abord tester si le chemin C: \ Macro existe et si elle ne crée pas avant de passer au dossier suivant.

Sub test () Chemin Dim As String Path = "C: \ Macro" Si Len (Dir (Chemin, vbDirectory)) = 0 Then MkDir (Path) End If Si Len (Dir (Chemin et "/ Test", vbDirectory)) = 0 alors MkDir (Chemin et "/ test") End If ActiveWorkbook.SaveAs (Chemin et "Test \ \ Test.xls") End Sub

(0)
(0)

Commentaires - 0

Sans commentaires

Ajouter un commentaire

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Caractères restants: 3000
captcha