Mkdir dossier/sous dossier [Résolu]

Messages postés
66
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
12 novembre 2019
- - Dernière réponse : yanndebretagn
Messages postés
66
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
12 novembre 2019
- 19 oct. 2019 à 23:57
Bonjour, la communauté,
petite question quel est le code pour créer un sous dossier dans un dossier qui existe déja?



yann
Afficher la suite 

8 réponses

Messages postés
26763
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 novembre 2019
1880
0
Merci
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 ?


Commenter la réponse de jordane45
Messages postés
8924
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 novembre 2019
453
0
Merci
bonjour, par exemple:
MkDir("C:\DossierExistant\NouveauSousDossier\") 
Commenter la réponse de yg_be
Messages postés
66
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
12 novembre 2019
0
Merci
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
Commenter la réponse de yanndebretagn
Messages postés
66
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
12 novembre 2019
0
Merci
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!
yg_be
Messages postés
8924
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 novembre 2019
453 -
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.
Commenter la réponse de yanndebretagn
Messages postés
6342
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 novembre 2019
409
Commenter la réponse de cs_Le Pivert
Messages postés
66
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
12 novembre 2019
0
Merci
merci
je mis colle et vous fais un retour
Commenter la réponse de yanndebretagn
Messages postés
66
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
12 novembre 2019
0
Merci
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
yg_be
Messages postés
8924
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 novembre 2019
453 -
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)
Commenter la réponse de yanndebretagn
Messages postés
26763
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 novembre 2019
1880
0
Merci
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

yanndebretagn
Messages postés
66
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
12 novembre 2019
-
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
yanndebretagn
Messages postés
66
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
12 novembre 2019
-
bravo c'est parfait merci à vous
merci jordane45
en espérant que ce code servira à d'autres noobs qui ce galèrent
Commenter la réponse de jordane45