Help SVP "sous-répertoires VBA"

Help SVP "sous-répertoires VBA" - VB/VBA/VBS - Programmation

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
Reply

Marsh Posté le 01-07-2014 à 11:19:08   

Reply

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...

Reply

Marsh Posté le 02-07-2014 à 10:36:43    

bpascal a écrit :

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...


 
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

Reply

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éé

Message cité 1 fois
Message édité par boomy29 le 02-07-2014 à 13:26:44

---------------
[Ach] Just dance + cam PS4
Reply

Marsh Posté le 02-07-2014 à 14:39:17    

boomy29 a écrit :

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éé


 
 
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
-----------------------------------------------------------------
http://nsa33.casimages.com/img/2014/07/02/mini_140702024341152441.jpg

Reply

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  :D
Bref toujours relire ses posts  :o

Message cité 1 fois
Message édité par boomy29 le 02-07-2014 à 16:11:10

---------------
[Ach] Just dance + cam PS4
Reply

Marsh Posté le 02-07-2014 à 16:28:53    

boomy29 a écrit :

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  :D
Bref toujours relire ses posts  :o


 
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  :D.
Franchement un grand merci encore une fois.  

Reply

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 :pfff:  
 
edit j'ai compris il faut mettre en mettre 2 pour que ça affiche 1 bref  \


Message édité par boomy29 le 02-07-2014 à 16:51:02

---------------
[Ach] Just dance + cam PS4
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed