Fonction de vérification de l'existence d'un dossier

jbballeyguier

XLDnaute Nouveau
Bonjour,

j'ai écrit une macro qui me permet de créer une arborescence à deux niveaux en partant de données présentes dans un fichier excel.
Cependant certaines données sont redondantes et la macro tente de créer un dossier ou un sous-dossier qui existe déjà.

J'ai réussi à trouver une fonction qui est censée permettre de vérifier si le dossier existe déjà avant de le créer, mais je ne sais pas comment l'utiliser dans ma macro.

Voici ma macro :

Code:
Sub creerdossiers()

I = 2
j = 2

Dim niveau1 As String
Dim niveau2 As String
Dim imhere As String

imhere = ThisWorkbook.Path
ThisWorkbook.Sheets("Nomenclature").Activate

If Not (TestDossier(niveau1)) Then
    Do While Cells(I, 2) <> "STOP"
        Cells(I, 2).Select
        niveau1 = imhere & "\" & ActiveCell.Value
        MkDir niveau1
        If Not (TestDossier(niveau2)) Then
            Do While Cells(j, 3) <> ""
                Cells(j, 3).Select
                niveau2 = niveau1 & "\" & ActiveCell.Value
                MkDir niveau2
                j = j + 1
            Loop
        End If
                I = j
                j = I + 1
    Loop
End If

End Sub

et la fonction que j'ai trouvée :

Code:
Function TestDossier(LeDossier$, nom_recherche As String) As Boolean

Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.GetFolder(LeDossier)
For Each flder In Dossier.subfolders
    If Right(flder, Len(flder) - Len(LeDossier)) = nom_recherche Then
        TousLesDossiers = True
        Exit For
    End If
Next

Set fso = Nothing
End Function

Quand je lance ma macro il me dit qu'un argument n'est pas facultatif...

Pourriez vous m'aider à intégrer cette fonction ?

Merci d'avance
 

jbballeyguier

XLDnaute Nouveau
[RESOLU]Re : Fonction de vérification de l'existence d'un dossier

Je me répond : j'ai trouvé une solution qui vaut ce qu'elle vaut.
Sans utiliser la fonction, j'utilise Dir pour vérifier que le répertoire n'existe pas en faisant un :

Code:
If Dir(monrep, vbDirectory) <> "" Then
         MkDir monrep
End If

ça fait ce que je veux, c'est parfait ;)
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 535
dernier inscrit
moimeme1