Créer un dossier via VBA

Bonsoir,

J'utilise un fichier mensuel à partir duquel je souhaite pouvoir créer le dossier et le fichier du mois suivant. Ci-dessous un résumé de mon arborescence.

  • C:\Romain\Projet\Janvier-19\Fichier01.xlsm
  • C:\Romain\Projet\Février-19\Fichier02.xlsm

A partir du fichier "Fichier02.xlsm", je souhaite:

- créer le dossier Mars-19

- enregistrer dans ce fichier une copie du fichier "Fichier 02.xlsm"

J'ai essayé plusieurs codes mais je n'arrive pas à ressortir dans le dossier "Projet" pour créer mon dossier "Mars-19".

Avez-vous une idée?

Merci par avance,

bonjour,

Essaie :

Sub test()
ChDir ("C:\Romain\Projet")
MkDir ("C:\Romain\Projet\Mars")
ThisWorkbook.SaveCopyAs ("C:\Romain\Projet\Mars\" & ThisWorkbook.Name)
End Sub

A+

Bonjour Gallopin,

Merci pour ton aide.

Mon chemin d'accès est variable. Il faut donc que je "variabilise" le Chdir.

Je pensais utiliser ThisWorkbook.Path mais je ne sais pas comment lui faire comprendre qu'il doit remonter un niveau au-dessus dans l'arborescence...

Regarde du coté d' ActiveWorkbook.Path

Function MyWay$()
Dim Z$, a, S$
Z = ActiveWorkbook.Path
a = Split(Z, "\")
S = UBound(a)
MyWay = Left(Z, Len(Z) - Len(S) + 1)
End Function

A une vache près je dois pas être loin du compte...

A+

Cela ne fonctionne pas, le résultat est l'emplacement de mon fichier actif.

Je comprends la logique, mais je ne comprends pas l'objectif de:

a = Split(Z, "\")

Merci

La vache était un peu grosse !

Function MyWay$()
Dim Z$, a, S$
Z = ActiveWorkbook.Path
a = Split(Z, "\")
S = UBound(a)
MyWay = Left(Z, Len(Z) - Len(a(S)) - 1)
End Function

EDIT: Nombreuses explications sur split dans ce fil

A+

Merci beaucoup

Rechercher des sujets similaires à "creer dossier via vba"