Help SVP "sous-répertoires VBA" - VB/VBA/VBS - Programmation
Marsh Posté le 02-07-2014 à 00:08:48
set newFolder1 = filesys.CreateFolder(d:\aaa" )
set newFolder2 = filesys.CreateFolder(d:\aaa\bbb" )
set newFolder3 = filesys.CreateFolder(d:\aaa\bbb\ccc" )
...
sinon il y a aussi mkdir qui s'utilise de la même façon sans instancier un objet...
Marsh Posté le 02-07-2014 à 10:36:43
bpascal a écrit : set newFolder1 = filesys.CreateFolder(d:\aaa" ) |
Bonjour bpascal,
Tout d'abord merci pour ta réponse, j'ai essayé ce que tu m'a écris mais malheureusement ca ne marche pas, je pense que j'ai un problème d'adresse car si tu regarde mon code, le DOSSIER que je crée au départ c'est "Nom" qui correspondant à une adresse (Rep) et un nom (Textbox2,4...).
ce que je n'arrive pas à faire c'est de créer mes sous-dossiers après le dossier "Nom" :
"Rep = "\\FANNY\Profdata\VINCENT\Bureau\Logiciel\Projets 2014\Trimestre 1\Nom\Devis"
"Rep = "\\FANNY\Profdata\VINCENT\Bureau\Logiciel\Projets 2014\Trimestre 1\Nom\Factures"
"Rep = "\\FANNY\Profdata\VINCENT\Bureau\Logiciel\Projets 2014\Trimestre 1\Nom\Documents"
"Rep = "\\FANNY\Profdata\VINCENT\Bureau\Logiciel\Projets 2014\Trimestre 1\Nom\Pièces"
En gros je bloque au niveau du Trimestre 1 par ce que je ne sais pas définir l'adresse de la suite vu que le dossier "Nom" n'est pas encore crée.
Je sais que difficile à expliquer, j'espère que tu as compris.
Merci encore une fois
Marsh Posté le 02-07-2014 à 13:22:06
Tu as quoi dans tes valeurs
TextBox2.Value & "-" & TextBox3.Value & "-" & TextBox4.Value
Dim NomFic As String
Dim Rep As String
Dim Nom As String
Set filesys = CreateObject("Scripting.FileSystemObject" )
Application.DisplayAlerts = False
Rep = "FANNYProfdataVINCENTBureauLogicielProjets 2014"
NomFic = TextBox2.Value & "-" & TextBox3.Value & "-" & TextBox4.Value
Nom = Rep & NomFic
If Not filesys.FolderExists(Nom) Then
Set newfolder = filesys.CreateFolder(Nom)
Normalement dans Nom à ce niveau là tu as "FANNYProfdataVINCENTBureauLogicielProjets 2014Trimestre 1Nom"
Set newfolder1 = filesys.CreateFolder(Nom & "Devis"
Set newfolder2 = filesys.CreateFolder(Nom & "Factures"
Set newfolder3 = filesys.CreateFolder(Nom & "Documents"
Set newfolder4 = filesys.CreateFolder(Nom & "Pieces"
MsgBox ("Le repertoire " & Nom & " a été créé" )
Else
MsgBox "Le repertoire existe déjà"
End If
edit : j'ai compris tu as le nom - prénom - classe en gros
Vérifie bien que ton dossier est créé
Marsh Posté le 02-07-2014 à 14:39:17
boomy29 a écrit : Tu as quoi dans tes valeurs |
Bonjour boomy,
Merci d'abord pour ta réponse. alors, pour répondre à ta question :
- les valeurs que j'ai dans les TextBox sont des textes
J'ai copier le code que tu m'as écris, mais malheureusement ca ne marche toujours pas, comme tu peux le voir sur l'image ci-dessous il me crée tous les dossier dans trimestre 1 alors que mois je veux que les quatre dossiers (devis,documents ...) soit dans le dossier "Nom".
Le code
-----------------------------------------------------------------
Dim NomFic As String
Dim Rep As String
Dim Nom As String
Set filesys = CreateObject("Scripting.FileSystemObject" )
Application.DisplayAlerts = False
Rep = "\\FANNY\Profdata\sougrati\Bureau\Logiciel\Projets 2014\Trimestre 1\"
NomFic = TextBox2.Value & "-" & TextBox3.Value & "__" & TextBox4.Value
Nom = Rep & NomFic
If Not filesys.FolderExists(Nom) Then
Set newfolder = filesys.CreateFolder(Nom)
Set newfolder1 = filesys.CreateFolder(Nom & "Devis" )
Set newfolder1 = filesys.CreateFolder(Nom & "Factures" )
Set newfolder1 = filesys.CreateFolder(Nom & "Documents" )
Set newfolder1 = filesys.CreateFolder(Nom & "Pièces" )
MsgBox ("Le repertoire " & NomFic & " a été créé" )
Else
MsgBox "Le repertoire existe déjà"
End If
-----------------------------------------------------------------
Marsh Posté le 02-07-2014 à 16:04:37
Il faut un antislash (altGr + 8) pour définir un autre niveau
Set newfolder1 = filesys.CreateFolder(Nom & "/Devis" )
Edit : Le forum n’accepte pas les antislash j'ai l'impression
Remplacer / par le même mais pencher à gauche
Bref toujours relire ses posts
Marsh Posté le 02-07-2014 à 16:28:53
boomy29 a écrit : Il faut un antislash (altGr + 8) pour définir un autre niveau |
Re-bonjour boomy29,
et bah je ne sais pas comment te remercier, ca fait plus d'une semaine que je cherche et là tu m'as sauvé la vie .
Franchement un grand merci encore une fois.
Marsh Posté le 02-07-2014 à 16:50:02
de rien
ça faisait un moment que j’étais pas passé par là
je suis toujours perplexe avec l'antislash
edit j'ai compris il faut mettre en mettre 2 pour que ça affiche 1 bref \
Marsh Posté le 01-07-2014 à 11:19:08
Bonjour,
J'ai le code ci-dessous qui me permet de créer un dossier dans un répertoire. Mon problème c'est que je veux créer dans ce dossier quatre sous-dossiers (devis,factures,pièces,documents) est ce possible en gardant le même code ?
Dim NomFic As String
Dim Rep As String
Dim Nom As String
Set filesys = CreateObject("Scripting.FileSystemObject" )
Application.DisplayAlerts = False
Rep = "\\FANNY\Profdata\VINCENT\Bureau\Logiciel\Projets 2014\"
NomFic = TextBox2.Value & "-" & TextBox3.Value & "-" & TextBox4.Value
Nom = Rep & NomFic
If Not filesys.FolderExists(Nom) Then
Set newfolder = filesys.CreateFolder(Nom)
MsgBox ("Le repertoire " & Nom & " a été créé" )
Else
MsgBox "Le repertoire existe déjà"
End If
Si mon message n'est claire merci de me l'indiquer
Merci d'avance
Message édité par 00vincent00 le 01-07-2014 à 14:12:11