Je veux créer une arborescence à partir du contenu aléatoire d'une boîte de dialogue : par exemple C:\REP1\REP2\
Je voulais utiliser CreateFolder comme ci-dessous...
Sub Chemin()
Dim TLdda As String
Dim fx As Scripting.FileSystemObject
Set fx = New Scripting.FileSystemObject
TLdda = "C:\REP1\REP2\" '(contenu de la TextBox)
'C'est OK avec un seul REP : TLdda = "C:\REP1\"
fx.CreateFolder (TLdda)
Set fx = Nothing
End Sub
CreateFolder ne fonctionne que pour UN SEUL répertoire, et je n'ai pas su trouver comment prendre en compte le sous-répertoire REP2 de mon exemple.
Mais dis-moi : tu es certain de développer sous VB.Net (la présente section du forum) ?
Car si sous VBA ou VB6, j'ai pour toi une solution sans faille et (cerise sur le gâteau), sans utiliser ce lourdaud de FSO (et donc vbs, qui peut être inhibé sur certaines machines, dont la mienne).
Je n'ai pas voulu "charger" inutilement mon post, mais bien sûr je vérifie avant que le lecteur appelé existe bien et que l'arborescence COMPLETE n'existe pas. Mais effectivement, il est possible qu'une partie existe déjà. Dans mon exemple, on peut imaginer que REP1 existe, mais pas REP2.
Peut-être faut-il impérativement que je "décompose" le contenu de la TextBox à l'aide des "\" et tester/créer un par un au fur et à mesure...
Fait (déplacé)
Le choix de la section est TRES IMPORTANT (tu le vois bien !).
Voilà ton code sans FSO
Dans la partie déclarative :
Private Declare Function SHCreateDirectoryEx Lib "shell32" Alias "SHCreateDirectoryExA" (ByVal hwnd As Long, ByVal pszPath As String, ByVal psa As Any) As Long
et dans ta sub chemin :
SHCreateDirectoryEx 0, "C:\REP1\REP2\", ByVal 0&
en te précisant que REP1 sera également créé s'il n'existe pas (idem pour REP2)
essaye et tu comprendras.
Private Declare Function SHCreateDirectoryEx Lib "shell32" Alias "SHCreateDirectoryExA" (ByVal hwnd As Long, ByVal pszPath As String, ByVal psa As Any) As Long
Sub chemin()
SHCreateDirectoryEx 0, ""C:\REP1\REP2\"", ByVal 0&
End Sub
Mais la ligne
SHCreateDirectoryEx 0, ""C:\REP1\REP2\"", ByVal 0&
s'affiche en rouge...
J'utilise (toujours) VisualBasic de mon bon vieil Excel2003
Où as-tu mis la déclaration et où as-tu mis la sub chemin ?
Si la sub chemin est dans un module, la déclaration doit se trouver dans le même module
Ah ! je vois : tu n'as pas vu ma modif (pas de double "", mis par erreur lorsque j'ai frappé).
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Private Declare Function SHCreateDirectoryEx Lib "shell32" Alias "SHCreateDirectoryExA" (ByVal hwnd As Long, ByVal pszPath As String, ByVal psa As Any) As Long
Sub chemin()
SHCreateDirectoryEx 0, ""C:\REP1\REP2\"", ByVal 0&
End Sub
Mais la ligne
SHCreateDirectoryEx 0, ""C:\REP1\REP2\"", ByVal 0&
reste en rouge... (erreur de syntaxe)
Il n'y a rien à expliquer !
C'est tout simplement la fonctionnalité d'une fonction de l'Api de Windows : la fonction SHCreateDirectoryEx de la librairie shell32 de l'Api de Windows. Elle existe et a été utilisée. C'est tout.