Probleme de creation repertoires et sous repertoire MKDIR

Y compris Power BI, Power Query et toute autre question en lien avec Excel
d
davber
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 2 juin 2017
Version d'Excel : 2010

Message par davber » 12 juillet 2017, 10:25

Bonjour,

J'ai besoin d'aide de votre part sur un fichier Excel qui permet de générer des répertoires et sous répertoires à partir d'une liste. J'ai essayé de fouiller dans le forum mais je ne trouve pas pourquoi ça ne marche pas.

Pour être plus précis dans mon fichier Excel, j'aimerai générer des répertoires à partir des cellules F19 à AK(cellule la plus basse). Dans ces cellules j'ai les adresses des répertoires à créer. Il n'y a pas de caractères interdits.

Dans ma macro2, je fais juste le test avec les cellules F19 à AK19 et j'ai la moitié de mes répertoires créés. Je ne comprends pas...

Pouvez-vous m'aider?

Voici mon fichier :
Avatar du membre
Efgé
Membre fidèle
Membre fidèle
Messages : 336
Appréciations reçues : 9
Inscrit le : 21 juin 2013
Version d'Excel : 2007

Message par Efgé » 12 juillet 2017, 12:35

Bonjour davber

S'il s'agit de créer tous les chemins inscrits de F19 à AK29:
Sub CreaRep()
Dim i&, K&, Col%, MaxLigne&
Dim MonChemin$, SousDossier$
Dim Tmp As Variant

'MonChemin = Bureau pour les tests
MonChemin = CreateObject("WScript.Shell").specialFolders("Desktop") & "\"
'MonChemin = "C:\Users\BERNARD.DA\Documents\Dossier_racine\"

With Sheets("Calcul")
    MaxLigne = .Cells.Find("*", Cells(.Rows.Count, .Columns.Count), xlValues, , 1, 2, 0).Row
    For i = 19 To MaxLigne
        'Pour les colonnes de F à AK
        For Col = 6 To 37
            If .Cells(i, Col) <> "" Then
                Tmp = Split(.Cells(i, Col), "\")
                SousDossier = MonChemin
                For K = LBound(Tmp) To UBound(Tmp)
                    SousDossier = SousDossier & Tmp(K) & "\"
                    If Dir(SousDossier, vbDirectory) = "" Then
                        MkDir SousDossier
                    End If
                Next K
            End If
        Next Col
    Next i
End With
End Sub
Cordialement
d
davber
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 2 juin 2017
Version d'Excel : 2010

Message par davber » 12 juillet 2017, 14:02

Merci beaucoup, c'est exactement ce que je voulais. :D

Cordialement
d
davber
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 2 juin 2017
Version d'Excel : 2010

Message par davber » 12 juillet 2017, 14:19

Par contre Est-ce que tu pourrais me l'expliquer? J'aime bien comprendre ce que j'utilise. Notamment je ne comprend pas : Tmp = Split(.Cells(i, Col), "\") et Lbound et Ubound.

Merci beaucoup en tout cas
Avatar du membre
Efgé
Membre fidèle
Membre fidèle
Messages : 336
Appréciations reçues : 9
Inscrit le : 21 juin 2013
Version d'Excel : 2007

Message par Efgé » 12 juillet 2017, 14:34

Re

L'instruction Split découpe une chaine de caractère avec le séparateur indiqué (dans notre cas le "\"
On se retrouve avec un tableau unidimensionnel.

Ensuite on boucle sur toutes les valeurs du tableau
Lbound = début du tableau (Lower Bound)
Ubound = fin du tableau (Uper Bound)

On fait ça pour vérifier que chaque sous dossiers du chemin est bien existant.
C'est ça le plus important : Vérifier en permanence que tous les sous dossier existent et, au besoin, les créer.

Je te laisse un classeur que j'avais fait pour une demande. (création d'une arborescence sur le bureau)
Il est expliqué, je pense que tu verra que les boucles vérifient la présence des chemins.

Cordialement
365_Jours_Dossiers.xlsm
(31.94 Kio) Téléchargé 38 fois
d
davber
Nouveau venu
Nouveau venu
Messages : 6
Inscrit le : 2 juin 2017
Version d'Excel : 2010

Message par davber » 12 juillet 2017, 16:57

ok merci je comprends mieux.

Merci pour tout
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message