Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1786 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Help SVP "sous-répertoires VBA"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Help SVP "sous-répertoires VBA"

n°2232290
00vincent0​0
Posté le 01-07-2014 à 11:19:08  profilanswer
 

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
mood
Publicité
Posté le 01-07-2014 à 11:19:08  profilanswer
 

n°2232390
bpascal
Posté le 02-07-2014 à 00:08:48  profilanswer
 

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

n°2232419
00vincent0​0
Posté le 02-07-2014 à 10:36:43  profilanswer
 

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

n°2232430
boomy29
PSN: tintine29
Posté le 02-07-2014 à 13:22:06  profilanswer
 

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
n°2232459
00vincent0​0
Posté le 02-07-2014 à 14:39:17  profilanswer
 

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

n°2232475
boomy29
PSN: tintine29
Posté le 02-07-2014 à 16:04:37  profilanswer
 

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
n°2232480
00vincent0​0
Posté le 02-07-2014 à 16:28:53  profilanswer
 

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.  

n°2232489
boomy29
PSN: tintine29
Posté le 02-07-2014 à 16:50:02  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Help SVP "sous-répertoires VBA"

 

Sujets relatifs
VBA condition WHERE avec LIKE Macro VBA sur des onglets réalisable ?
Séparer 4 colonnes dans une listbox VBA Excel[RESOLU] Débutant - Tri de données
VBA excel Suppression ligne sous conditionAffichage de la fenêtre word - VBA Excel
Compteur d'heures de travail par projet VBA EXCEL[VBA Excel] Déterminer répertoires de configurations
VBA Excel - Enregistrer un document dans 2 répertoires différentsVBA excell (lire fichiers dans multiples sous répertoires)
Plus de sujets relatifs à : Help SVP "sous-répertoires VBA"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR