Mkdir dossier/sous dossier [Résolu]

Signaler
Messages postés
100
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
2 mai 2020
-
Messages postés
100
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
2 mai 2020
-
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

Messages postés
29524
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 septembre 2020
2 773
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 ?


Messages postés
12138
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 septembre 2020
682
bonjour, par exemple:
MkDir("C:\DossierExistant\NouveauSousDossier\") 
Messages postés
100
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
2 mai 2020
1
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
Messages postés
100
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
2 mai 2020
1
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!
Messages postés
12138
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 septembre 2020
682
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.
Messages postés
6919
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 septembre 2020
548
Messages postés
100
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
2 mai 2020
1
merci
je mis colle et vous fais un retour
Messages postés
100
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
2 mai 2020
1
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
Messages postés
12138
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 septembre 2020
682
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)
Messages postés
29524
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 septembre 2020
2 773
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

Messages postés
100
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
2 mai 2020
1
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
Messages postés
100
Date d'inscription
dimanche 28 mai 2017
Statut
Membre
Dernière intervention
2 mai 2020
1
bravo c'est parfait merci à vous
merci jordane45
en espérant que ce code servira à d'autres noobs qui ce galèrent