Création dossier VBA (MKDIR)

matthieu2701

XLDnaute Occasionnel
Bonjour,

J’essaie de créer un dossier avec la fonction MKDIR mais j'obtiens le message suivant : Erreur d'éxécution '75'. Erreur d'accès Chemin/Fichier.

Je viens vers vous pour que vous m'apportiez votre aide.

Merci par avance.
 

Pièces jointes

  • Normalisation courriers et mails Réclas.xls
    38.5 KB · Affichages: 64
  • Normalisation courriers et mails Réclas.xls
    38.5 KB · Affichages: 63
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Création dossier VBA (MKDIR)

Bonjour matthieu2701,

Essaie en ajoutant un antislash à la fin de chemin:

Code:
chemin = "Q:\CLI11PTE\AA-RECLAMATION GAZ\Historique des Réclamations\" & Rec & " " & BRDG & " " & Nom & " " & Initiales & "\"
Cordialement.

Oups collision. Salut Gilbert.
 

gilbert_RGI

XLDnaute Barbatruc
Re : Création dossier VBA (MKDIR)

alors si "Q:\CLI11PTE\AA-RECLAMATION GAZ\Historique des Réclamations\"
existe ecrire
VB:
ChDir "Q:\CLI11PTE\AA-RECLAMATION GAZ\Historique des Réclamations\"
chemin = Rec & " " & BRDG & " " & Nom & " " & Initiales & "\"
'Création du dossier
MkDir chemin
 

Dranreb

XLDnaute Barbatruc
Re : Création dossier VBA (MKDIR)

Bonjour.
Attention: Il pourrait être prudent de faire aussi ChDrive "Q" au cas où ce ne serait pas le lecteur courant.
En revanche le "\" de fin ne me paraît pas utile.
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Création dossier VBA (MKDIR)

Bonjour à tous

Si vous avez besoin de créer des dossiers avec sous-dossiers qui n'existent pas, j'utilise ce code:


Code:
Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" (ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long
Public sNomRep
Sub MKDossier()
 sNomRep = "C:\Test1\Test2"
 CreationDossier (sNomRep)
End Sub
Sub CreationDossier(sNomRep As String)
   ChDrive "C"
   SHCreateDirectoryEx 0&, sNomRep, 0&
End Sub
 
Dernière édition:

matthieu2701

XLDnaute Occasionnel
Re : Création dossier VBA (MKDIR)

Bonjour à tous

Si vous avez besoin de créer des dossiers avec sous-dossiers qui n'existent pas, j'utilise ce code:


Code:
Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" (ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long
Public sNomRep
Sub MKDossier()
 sNomRep = "C:\Test1\Test2"
 CreationDossier (sNomRep)
End Sub
Sub CreationDossier(sNomRep As String)
   ChDrive "C"
   SHCreateDirectoryEx 0&, sNomRep, 0&
End Sub

Bonjour MJ13,

Le dossier "Historique des réclamations" existe dans Q:\CLI11PTE\AA-RECLAMATION GAZ\Historique des Réclamations\. Je veux juste créer un dossier dans Q:\.....\Historique des Réclamations\.
 

MJ13

XLDnaute Barbatruc
Re : Création dossier VBA (MKDIR)

Re

Chez, moi, je n'ai pas de problèmes avce ce code que j'ai mis sur C, mais à adapter en changeant la lettre:

Code:
Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" (ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long
Public sNomRep
Sub MKDossier()
  sNomRep = "C:\CLI11PTE\AA-RECLAMATION GAZ\Historique des Réclamations\AA"
  CreationDossier (sNomRep)
End Sub
Sub CreationDossier(sNomRep As String)
    'ChDrive "C"
    SHCreateDirectoryEx 0&, sNomRep, 0&
End Sub
 

matthieu2701

XLDnaute Occasionnel
Re : Création dossier VBA (MKDIR)

Je viens de tester de chez moi.

Voilà ma macro :
Code:
Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" (ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long
Public sNomRep
Sub MKDossier()
  sNomRep = "/Users/Matthieu/" ' "C:\CLI11PTE\AA-RECLAMATION GAZ\Historique des Réclamations\AA
  CreationDossier (sNomRep)
End Sub
Sub CreationDossier(sNomRep As String)
    'ChDrive "C"
    SHCreateDirectoryEx 0&, sNomRep, 0&
End Sub

'Faire apparaite bulle
ActiveSheet.Shapes("MonBouton1").Visible = True
Application.OnTime Now + TimeValue("00:00:02"), "EffacerMessage1"
Exit Sub

End Sub
'Effacement de la bulle
Sub EffacerMessageDossier()
ActiveSheet.Shapes("MonBouton1").Visible = False
'Call Enregistrer_Classeur
'Sheets("Echéancier").Range("K4").Value = Format(Now, "dddd dd mmmm yyyy / h:mm")
End Sub

J'obtiens le message suivant quand j'exécute la macro : Erreur de compilation : Seuls des commentaires peuvent apparaître après End Sub, End Function ou End Property.
 
Dernière édition:

Discussions similaires