Mkdir dossier/sous dossier

Résolu
yanndebretagn Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   -  
yanndebretagn Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, la communauté,
petite question quel est le code pour créer un sous dossier dans un dossier qui existe déja?



yann

8 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, par exemple:
MkDir("C:\DossierExistant\NouveauSousDossier\") 
1
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,
Dans quel VB ?
VBA ? VB6 ? VB.NET ? VBSCRIPT ?

Sans cette information il sera difficile de t'apporter une réponse exacte....

Sachant que si c'est en VBA : https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/mkdir-statement
Tu as également des scripts tel que celui-ci
https://stackoverflow.com/questions/10803834/create-a-folder-and-sub-folder-in-excel-vba
Qui peuvent s'appliquer au VBA et/ou au vbScript

Ce qui m'étonne.. c'est qu'il y a tellement de résultats pour cette question sur internet que tu viennes quand même poser la question....
As tu testé des choses ? As tu rencontré des soucis ?


0
yanndebretagn Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   2
 
merci pour la réactivité,
en vba sous excel 2007
en effet les sujets ne manque pas
pour mkdir pas de problème
mais si le dossier racine existe déjà impossible de lui attribuer un nouveau dossier dedans
0
yanndebretagn Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   2
 
pour plus de précision
je veux créer un sous dossier toto dans fichier tata
ok
mais quand je relance le macro avec sous dossier titi
message erreur il me dit que le dossier racine tata existe déjà au lieu de créer titi dans tata
je ne sais pas si c'est très clair!
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
c'est peu clair, tata est-il un fichier ou un dossier?
ce serait encore plus clair si tu nous montrais le code de la macro.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
0
yanndebretagn Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   2
 
merci
je mis colle et vous fais un retour
0
yanndebretagn Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   2
 
Bon je me lance
ci joint le code que j’utilise
(je sais que cela va piquer les yeux)
Mais mkdir rien a faire malgré les nombreux sujets
L’idée est de créer dossier et sous dossier mais si le dossier existe déjà de créer quand même le sous dossier dedans
Désolé de ma méconnaissance mais la je sèche
Merci aux pédagogues de passage


Sub CreaDossier()

Dim Dossier As String, sousdossier As String, Fichier As String, Chemin As String
Dossier = Sheets("renseignement client").Range("B27").Value
sousdossier = Sheets("renseignement client").Range("B23").Value
MkDir "C:\Users\Yann\Documents\xxxxxxxx\devis\" & Dossier \ sousdossier
'Fichier = Sheets("renseignement client").Range("B23").Value
'Chemin = "C:\Users\Yann\Documents\xxxxxxxxxx\devis\" & Dossier
'ActiveWorkbook.SaveAs Filename:=Chemin & "\" & Fichier & ".xlsm"
End Sub
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
merci d'utiliser les balises de code. cela donnerait ceci, beaucoup plus lisible:
Sub CreaDossier()

Dim Dossier As String, sousdossier As String, Fichier As String, Chemin As String
Dossier = Sheets("renseignement client").Range("B27").Value
sousdossier = Sheets("renseignement client").Range("B23").Value
MkDir "C:\Users\Yann\Documents\xxxxxxxx\devis\" & Dossier \ sousdossier
'Fichier = Sheets("renseignement client").Range("B23").Value
'Chemin = "C:\Users\Yann\Documents\xxxxxxxxxx\devis\" & Dossier
'ActiveWorkbook.SaveAs Filename:=Chemin & "\" & Fichier & ".xlsm"
End Sub

tu n'as pas pris le temps ni la peine d'expliquer ce que tu voulais faire ni ce que tu as testé, tu as fait le minimum d'effort pour simplement demander de l'aide.
au lieu de ta ligne 6, je suggère:
MkDir "C:\Users\Yann\Documents\xxxxxxxx\devis\" _
       + cstr(Dossier) + "\" +cstr(sousdossier)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Ceci devrait correspondre à tes besoins :

Sub test()
    Dim Dossier As String
    Dim sousdossier As String
    Dim Fichier As String
    Dim Chemin As String
    
    repDevis = "C:\Users\Yann\Documents\xxxxxxxxxx\devis\"
    Dossier = Sheets("renseignement client").Range("B27").Value
    sousdossier = Sheets("renseignement client").Range("B23").Value
    
    
    Fichier = "Nouveau_fichier"
        
    D1 = createDirectoryIfNotExists(repDevis & Dossier)
    D2 = createDirectoryIfNotExists(repDevis & Dossier & "\" & sousdossier)
    
    ActiveWorkbook.SaveAs Filename:=repDevis & Dossier & "\" & sousdossier & "\" & Fichier & ".xlsm"
    
End Sub

Function createDirectoryIfNotExists(Chemin As String) As Boolean
    If Right(Chemin, 1) <> "\" Then
        Chemin = Chemin & "\"
    End If
    
   'Si le répertoire existe déjà
    If Dir(Chemin, vbDirectory) <> vbNullString Then
        Debug.Print "Le dossier " & Chemin & " existe déjà "
        createDirectoryIfNotExists = False
    Else
        'Sinon... on le créé
        MkDir Chemin
        createDirectoryIfNotExists = True
    End If
End Function

0
yanndebretagn Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   2
 
grand merci
je teste de suite
pour info yg_be je ne me rappelai plus de la balise de code mea-culpa
de dire que j'ai fais le minimum est vexant j'ai cherché de mon coté mais mon niveau de noob ma très vite limité
après une journée je me tourne vers des personnes plus compétentes
merci à vous et à bientôt
0
yanndebretagn Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   2
 
bravo c'est parfait merci à vous
merci jordane45
en espérant que ce code servira à d'autres noobs qui ce galèrent
0