Generer des dossiers par excel

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

rainbow69006

XLDnaute Occasionnel
Est il possible de faire generer des dossiers par excel?
exemple je rentre un noms en ''A'' et je rentre le lieu du dossier en ''B''
et je met valider et sa me fabrique le dossier A en B ?

merci de vos idees
 
Re : Generer des dossiers par excel

Bonsoir rainbow69006, le Forum,

Par exemple : soit "C:\" en A1 et "MonDossier" en B1
Code:
[COLOR=NAVY]Dim[/COLOR] Chemin [COLOR=NAVY]As String[/COLOR], Dossier [COLOR=NAVY]As String[/COLOR]
    Chemin = Range("A1").Text
    Dossier = Range("B1").Text
    [B]MkDir [/B]Chemin & Dossier
et tu obtiendras un dossier nommé "MonDossier" sous le chemin "C:\"

Pour info : "MkDir" signifie "Make Directory"

Cordialement,
 
Re : Generer des dossiers par excel

En fait c'est un peu plus compliquer
parce que j'ai une base qui reste toujour la meme: exemple c:
ce quil y a d'ecrit en D1 E1 F1 G1 reste aussi toujour pareil
et apres je dois creer 4 dossiers par lignes.

je prend l'exemple de la ligne 2
sa me donne 4 fichiers :
c:\ce quil y a en B2\ce qu'il y a en C2\ce quil y a en D1
c:\ce quil y a en B2\ce qu'il y a en C2\ce quil y a en E1
c:\ce quil y a en B2\ce qu'il y a en C2\ce quil y a en F1
c:\ce quil y a en B2\ce qu'il y a en C2\ce quil y a en G1

a chaque fois que je rajoute une ligne dans mon tableau cela doit me rajouter ces 4 dossiers.
Comment faire?

PS: bien sur si le fichier existe deja le programme doit me le dire

merci
 
Dernière édition:
Re : Generer des dossiers par excel

Jour Bon, a adapter à tes besoins
Code:
Option Explicit

Sub Tst()
Dim Dossier As String
    Dossier = "C:\Essai1\Essai2\essai3\essai4"
    CreerDossier Dossier
End Sub

Private Function CreerDossier(ByVal sChemin As String)
Dim i As Integer
Dim sTmp As String
Dim Ar() As String

    Ar = Split(sChemin, "\")
    sTmp = Ar(0)
    For i = LBound(Ar) + 1 To UBound(Ar)
        If Ar(i) <> "" Then
            sTmp = sTmp & "\" & Ar(i)
            On Error Resume Next
            MkDir sTmp
            On Error GoTo 0
        End If
    Next

End Function
 
Re : Generer des dossiers par excel

Salut Rainbow69006,

je prend l'exemple de la ligne 2
sa me donne 4 fichiers :
c:\ce quil y a en B2\ce qu'il y a en C2\ce quil y a en D1
c:\ce quil y a en B2\ce qu'il y a en C2\ce quil y a en E1
c:\ce quil y a en B2\ce qu'il y a en C2\ce quil y a en F1
c:\ce quil y a en B2\ce qu'il y a en C2\ce quil y a en G1
Si tu prends l'exmple de la ligne 2, c'est bien la valeur de "D1", "E1", "F1", "G1" que tu veux récupérer !?

Ce n'est pas "D2", "E2", "F2", G2" !?

A+
 
Re : Generer des dossiers par excel

oui oui en fait je prend toujours D1 E1 F1 G1
en fait dans ces cases il y a des mots qui ne changeront jamais
si je prend l'exemple de lq ligne 3

c:\ce quil y a en B3\ce qu'il y a en C3\ce quil y a en D1
c:\ce quil y a en B3\ce qu'il y a en C3\ce quil y a en E1
c:\ce quil y a en B3\ce qu'il y a en C3\ce quil y a en F1
c:\ce quil y a en B3\ce qu'il y a en C3\ce quil y a en G1
 
Re : Generer des dossiers par excel

Code:
...
Sub Tst()
Dim Dossier As String
Dim sChaine As String
    sChaine = Range("D1") & "\" & Range("E1") & "\" & Range("F1") & "\" & Range("G1")
    Dossier = ThisWorkbook.Path & "\" & sChaine
    CreerDossier Dossier
End Sub
 
Re : Generer des dossiers par excel

Re,

La fonction qu'a donné Kiki29 est vraiment pratique !
Elle permet de créer les dossiers et sous-dossiers si besoin.

Le code global devrait donner à peu près ça
Code:
Option Explicit
Sub Dossier()
  Dim Lig As Long, Col As Integer
  Dim ColB As String, ColC As String
  ' Récupère la dernière ligne de la feuille
  Derlig = Range("A" & Application.Rows.Count).End(xlUp).Row
  ' Sauter la 1ère ligne d'entête
  For Lig = 2 To Derlig
    ' Pour chaque colonne
    For Col = 1 To 4
      ' Récupère la valeur de la ligne de la colonne B
      ColB = Range("B" & Lig).Value
      ' Récupère la valeur de la ligne de la colonne C
      ColC = Range("C" & Lig).Value
      ' Vérifie / créé le dossier
      CreerDossier ("C:\" & ColB & "\" & ColC & "\" & Cells(1, 3 + Col))
    Next Col
  Next Lig
End Sub
Private Function CreerDossier(ByVal sChemin As String)
Dim I As Integer, sTmp As String, Ar() As String
  ' Créé un tableau des différends dossier et sous-dossier
  Ar = Split(sChemin, "\")
  sTmp = Ar(0)
  ' Pour le début du chemin jusqu'à la fin
  For I = LBound(Ar) + 1 To UBound(Ar)
    ' Vérifie que le tableau n'est pas vide
    If Ar(I) <> "" Then
      sTmp = sTmp & "\" & Ar(I)
      On Error Resume Next
      MkDir sTmp
      On Error GoTo 0
    End If
  Next
End Function

A essayer 😉

Merci Kiki29

A+
 
Re : Generer des dossiers par excel

Sa ne veu pas marcher

sa me surligne Derlig sur cette ligne :
Derlig = Range("A" & Application.Rows.Count).End(xlUp).Row

et sa me dit erreur compliation : variable non defini

Que dois je faire?

J'ai essayer de mettre : Dim Derlig As String (je sais pas si c'est sa qu'il fallait faire)
Tojour est il que l'erreur n'apparait plus mais j'en ai une nouvelle sur la ligne :
CreerDossier ("C:\" & ColB & "\" & ColC & "\" & Cells(1, 3 + Col))

il me marque :
run time error 13
type mismatch

AU SECOUR
 
Dernière édition:
Re : Generer des dossiers par excel

d'après toi ,si tu lis le code de BrunoM45
Code:
  ' Récupère la dernière ligne de la feuille
  Derlig = Range("A" & Application.Rows.Count).End(xlUp).Row
que peut être DerLig ? surement pas une String !!! Gratte toi le neurone et sers-toi de l'aide en ligne
 
Dernière édition:
Re : Generer des dossiers par excel

Excuse moi mais je ne suis pas comme vous.
Je ni connais rien en macro. donc j'essaye.

Voila j'aurais pu dire sa ne marche pas !!!! mais j'ai preferer essayer quelque chose. C'est en faisant des erreurs que l'on apprend..

Voila sur ce forum je pose des questions mais peut etre que sur un autre forum qui parle d'un autre sujet qu'excel c'est moi qui t'aidera... C'est sa l'entraide je crois!!!
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
211
  • Question Question
Réponses
12
Affichages
520
Réponses
3
Affichages
313
Retour