MkDir Création de dossier et/ou sous dossier

fileofish

XLDnaute Occasionnel
Bonjour Le forum,


J'utilise le code suivant pour enregistrer 50 fois (donc dans 50 endroits différents) un fichier nommé "Paie 2014" dans un dossier nommé "RH" puis dans un sous dossier "2014"

- Le dossier est déjà crée selon les cas
- Le sous dossier est déjà crée selon les cas

Je voulais que lorsque le dossier ou sous dossier n'existe pas il me le crée :
Mais j'ai une erreur 76 sur MkDir

Ci dessous le code que j'utilise


Sub Creation_Paie_dossier_hotels()

Workbooks.Open ("U:\RH\Paie\Paie 2014.xlsm")

Windows("Macro RH 2014.xlsm").Activate
Dim codehotel

Sheets("Liste").Activate
Range("A1").Select

While ActiveCell.Value <> 0
ch = ActiveCell

Sheets("Creation").Activate
Range("C2").Select
ActiveCell.FormulaR1C1 = "" & ch & ""

Range("G2").Select
dossier = ActiveCell


Application.DisplayAlerts = False
Windows("Paie 2014.xlsm").Activate

chemin = "R:\" & dossierhotel & "\Ressources_humaines\2014\"
If Dir(chemin) = "" Then
MkDir (chemin)
ActiveWorkbook.SaveCopyAs ("R:\" & dossier & "\Ressources_humaines\2014\Paie 2014_" & ch & ".xlsm")
End If


Windows("Macro RH 2014.xlsm").Activate
Sheets("Liste").Activate
ActiveCell.Offset(1, 0).Select

Wend

Windows("Macro RH 2014.xlsm").Activate

End Sub



Pouvez me dire quoi faire, je suis bloqué
Encore merci
Philippe
 

MJ13

XLDnaute Barbatruc
Re : MkDir Création de dossier et/ou sous dossier

Bonjour Philippe

En général, j'utilise ce code qui permet de t'affranchir du fait qu'un dossier existe ou pas.

Code:
Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
(ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long
Sub Creation_Dossier()
SHCreateDirectoryEx 0&, "C:\A\B\C\D\E", 0&
End Sub
 

fileofish

XLDnaute Occasionnel
Re : MkDir Création de dossier et/ou sous dossier

Bonjour Michel

Merci pour ta réponse, mais je n'arrive pas à adapter ton code.
Peux tu stp m'aider à l'adapter ?

Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
(ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long
Sub Creation_Dossier()
SHCreateDirectoryEx 0&, "S:\Dossier\Ressources Humaines\2014", 0&
End Sub

C'est cela ?
Faut-il que je lance une 1ère macro avec ce code pour création et 1 2ème pour enregistrement ?
Ou la création et l'enregistrement peuvent être réalisés ensemble ?


Encore merci pour ton aide
Philippe
 

MJ13

XLDnaute Barbatruc
Re : MkDir Création de dossier et/ou sous dossier

Re, Bonjour Efgé

Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
(ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long
Sub Creation_Dossier()
SHCreateDirectoryEx 0&, "S:\Dossier\Ressources Humaines\2014", 0&
End Sub

C'est cela ?
Faut-il que je lance une 1ère macro avec ce code pour création et 1 2ème pour enregistrement ?
Ou la création et l'enregistrement peuvent être réalisés ensemble ?

Oui, c'est cela. L'intérêt c'est, qu'il existe ou pas de sous-dossier, le dossier se créera. Bizarre que personne n'en parle :confused:.

PS: Efgé :), j'ai pas regardé ton lien :eek:.
 

fileofish

XLDnaute Occasionnel
Re : MkDir Création de dossier et/ou sous dossier

Bonjour Efgé, MJ13

Je dois pas être doué !!

J'ai pris l'exemple que tu avais dans ton fichier joint.
J'ai rajouté et enlevé les paranthese manquantes , rajouté (Vb Directory)
Mais j ai toujours le même soucis !


Range("C2").Select
ActiveCell.FormulaR1C1 = "" & ch & ""

Range("G2").Select
dossier = ActiveCell

camino = "R:\" & dossierhotel & "\Ressources_humaines\2014\"
If Dir(camino, vbDirectory) = "" Then MkDir camino
ActiveWorkbook.SaveCopyAs ("R:\" & dossier & "\Ressources_humaines\2014\Paie 2014_" & ch & ".xlsm")


Tu vois où ca bloque ?
Merci beaucoup
Philippe
 

fileofish

XLDnaute Occasionnel
Re : MkDir Création de dossier et/ou sous dossier

Re MJ13 :)
Oui j'ai bien les droits d'accès et création.
C'est le code que j'utilise généralement mais en général le dossier et sous dossier existent.
Ce qui n'est pas le cas pour le dossier Ressources_humaines\2014\

L76e débogeur d'Excel s'arrête à MkDir en mettant Erreur 76
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87