Mkdir dossier/sous dossier

Résolu
yanndebretagn Messages postés 104 Statut Membre -  
yanndebretagn Messages postés 104 Statut Membre -
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

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, par exemple:
    MkDir("C:\DossierExistant\NouveauSousDossier\") 
    1
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
  3. yanndebretagn Messages postés 104 Statut Membre 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
  4. yanndebretagn Messages postés 104 Statut Membre 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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. yanndebretagn Messages postés 104 Statut Membre 2
     
    merci
    je mis colle et vous fais un retour
    0
  7. yanndebretagn Messages postés 104 Statut Membre 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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      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
  8. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
    1. yanndebretagn Messages postés 104 Statut Membre 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
    2. yanndebretagn Messages postés 104 Statut Membre 2
       
      bravo c'est parfait merci à vous
      merci jordane45
      en espérant que ce code servira à d'autres noobs qui ce galèrent
      0