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 :
	
	
	
	
	
		
et la fonction que j'ai trouvée :
	
	
	
	
	
		
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
	
		
			
		
		
	
				
			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