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

Code:
...
Dim Derlig As Long
Sélectionner Long puis [F1]

et pourtant la réponse était devant tes yeux
Code:
Sub Dossier()
  [B]Dim Lig As Long[/B]
....
   Derlig = Range("A" & Application.Rows.Count).End(xlUp).Row
  .....
  For [B]Lig[/B]= 2 To Derlig
 
Dernière édition:
Re : Generer des dossiers par excel

Est ce cela que je dois faire?
L'erreur n'apparait plus mais j'ai l'erreur suivante sur cette ligne :''CreerDossier = ("C:\" & ColB & "\" & ColC & "\" & Cells(1, 3 + Col))''
erreur de compilation argument non optionel

Sub Dossier()
Dim lig As Long, Col As Integer
Dim ColB As String, ColC As String
Dim derlig As Double
' 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
 
Re : Generer des dossiers par excel

salut rainbow69006
Bonjour le fil
il faut je pense supprimer le Egal

CreerDossier = ("C:\" & ColB & "\" & ColC & "\" & Cells(1, 3 + Col))

on passe l'argument à la fonction CreerDossier

test avec parentheses

CreerDossier ("C:\" & ColB & "\" & ColC & "\" & Cells(1, 3 + Col))

et sans

CreerDossier "C:\" & ColB & "\" & ColC & "\" & Cells(1, 3 + Col)

Bonne fin de Journée
 
Dernière édition:
Re : Generer des dossiers par excel

re
essaies de mettre le chemin dans une variable
exemple
Dim MonChemin as String

MonChemin= "C:\" & ColB & "\" & ColC & "\" & Cells(1, 3 + Col)

puis tu le passes en argument

CreerDossier MonChemin

bonne fin de Journée
 
Re : Generer des dossiers par excel

Re voila ce que j'ai fais. Par contre commen tu fais pour repasser en argument apres?

Option Explicit
Sub Dossier()
Dim lig As Long, Col As Integer
Dim ColB As String, ColC As String
Dim derlig As Double
Dim MonChemin 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
MonChemin = "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
 
Re : Generer des dossiers par excel

Est ce bien cela ? Si oui il y a un probleme car cela m'affiche toujours l'erreur 13

Option Explicit
Sub Dossier()
Dim lig As Long, Col As Integer
Dim ColB As String, ColC As String
Dim derlig As Double
Dim MonChemin 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
MonChemin = "C:\" & ColB & "\" & ColC & "\" & Cells(1, 3 + Col)

creerDossier MonChemin

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
 
Re : Generer des dossiers par excel

Salut Rainbow69006,

Je pense que le problème se situe dans les valeurs récupérées

Code:
 Récupère la valeur de la ligne de la colonne B
ColB = Range("B" & lig).Value
[B][COLOR=blue]Msgbox ColB[/COLOR][/B]

Code:
' Récupère la valeur de la ligne de la colonne C
[COLOR=black]ColC = Range("C" & lig).Value[/COLOR]
[COLOR=black][B][COLOR=blue]MsgBox ColC[/COLOR][/B][/COLOR]

Code:
' Vérifie créé le dossier
Msgbox Cells(1, 3 + Col)
IF Colb <>"" and ColC <>"" and Cells(1, 3 + Col) <>"" then
CreerDossier "C:\" & ColB & "\" & ColC & "\" & Cells(1, 3 + Col)
End If

Si un de ces MsgBox te retourne une valeur null, il y'a un problème !
Il faudra faire des tests et créer le dossier si toutes les données sont bonnes.

A+
 
Dernière modification par un modérateur:
Re : Generer des dossiers par excel

Salut BrunoM45 J'ai fais ce que tu a dit.
j'ai lancer le programe
sa ma ouvert une petite fenetre exel ou il etait ecrit microsoft excel et juste la possibilite de cliquer sur "ok". j'ai cliquer sur ok. a ce moment une 2 eme fenetre identique est apparu. j'ai reclique "ok" et apres sa me remarque erreur 13

je met mon programe

Option Explicit
Sub Dossier()
Dim lig As Long, Col As Integer
Dim ColB As String, ColC As String
Dim derlig As Double
Dim MonChemin 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
MsgBox ColB
' Récupère la valeur de la ligne de la colonne C
ColC = Range("C" & lig).Value
MsgBox ColC
' Vérifie créé le dossier
MsgBox Cells(1, 3 + Col)
If ColB <> "" And ColC <> "" And Cells(1, 3 + Col) <> "" Then
creerDossier "C:\" & ColB & "\" & ColC & "\" & Cells(1, 3 + Col)
End If

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
 
- 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
210
  • Question Question
Réponses
12
Affichages
520
Réponses
3
Affichages
313
Retour