VIVEZ LE
FOOTBALL !

Posez votre question Signaler

[VBA] Création dossier MkDir [Résolu]

Palteza 62Messages postés 2 décembre 2009Date d'inscription 30 décembre 2010Dernière intervention - Dernière réponse le 15 juil. 2010 à 13:23
Bonjour les commentçamarcheurs,
Je crée un dossier, avec la méthode MkDir, s'il n'existe pas. Le problème, mineur, est ... qu'il ne se crée pas ^^
Voici la portion de code :
CheminSource = Left(Workbooks("ExtractionTest.xls").FullName, InStr(Workbooks("ExtractionTest.xls").FullName, "ExtractionTest.xls") - 1)  

Annee = 2006  

If Dir(CheminSource & Annee & "\Données_Découpages", 16) = "" Then MkDir (CheminSource & Annee & "\Données_Découpages")

Je récupère avec CheminSource qqchose comme : C\Documents....\..\..\ et tout devrait s'enchainer, mais non.
Le truc c'est que quand je supprime Annee, ça marche très bien.
J'ai bien essayé avec Annee en Integer et String, mais c'est pas ça.
Il me renvoit une erreur d'exécution 76, chemin d'accès introuvable sur :
MkDir (CheminSource & Annee & "\Données_Découpages")

Merci d'avance
Lire la suite 

[VBA] Création dossier MkDir »

8 réponses
Réponse
+1
moins plus
ton code est correct à ceci prêt
tu ne dis pas si le dossier 'Annee' est déjà créé...

tu n'as pas le droit de créé un sous dossier pour un dossier inexistant.
il faut proceder en 2 temps dossier puis sous dossier
Sub test()
CheminSource = Left(Workbooks("ExtractionTest.xls").FullName, InStr(Workbooks("ExtractionTest.xls").FullName, "ExtractionTest.xls") - 1)

Annee = 2006

If Dir(CheminSource & Annee, 16) = "" Then
    MkDir (CheminSource & Annee)
End If

If Dir(CheminSource & Annee & "\Données_Découpages", 16) = "" Then
    MkDir (CheminSource & Annee & "\" & "Données_Découpages")
End If

End Sub
Ajouter un commentaire
Réponse
+0
moins plus
tu asu n log de l'adresse exacte qu'il essaie d'accèder ?
Ajouter un commentaire
Réponse
+0
moins plus
Salut Leahkim et merci

Log de l'adresse, c'est à dire, l'endroit où je veux créer mon répertoire? En fait ça dépend de l'endroit du fichier ExtractionTest (le but de cette portion de code en fait).

Dans mon exemple je dis que je récupère, avec CheminSource, qqchose comme C:\Documents and settings\moi\Bureau\..\...\ car ExtractionTest se trouve sur le bureau (dans un dossier), mais il pourrait se trouver à nimporte quel autre endroit. Je récupère en tout cas à tous les coups le chemin de ExtractionTest avec un \ à la fin.
Ajouter un commentaire
Réponse
+0
moins plus
Up
pijaku- 15 juil. 2010 à 10:00
Salut,
Essaie déjà :
Annee = "2006"
Sinon ton chemin exact c'est : C:\Doc\moi\lui\travail\2006 ou tu remplaces 2006 par la variable Annee?
Si oui en faisant : CheminSource & Annee, il te manque un "\". Donc essaie :
CheminSource & "\" & Annee
Ajouter un commentaire
Réponse
+0
moins plus
J'ai testé Annee en String avec "2006" mais rien.

Et oui le 2006 provient d'une variable, chargée par inputbox.
Le \ n'est pas à rajouter, CheminSource (gràce aux fonctions Left et Instr) récupère toujours le chemin du fchier avec un \ à la fin, donc ça ferait doublon. J'ai quand même essayé de rajouter mais nan

Ca vient d'ailleurs.
pijaku- 15 juil. 2010 à 10:22
Voir réponse de Bidouilleu, le répertoire Annee existe t'il?
Ajouter un commentaire
Réponse
+0
moins plus
Oui c'était ça le soucis, je croyais qu'on pouvait créer répertoires et sous-répertoires en une fois.

Merci beaucoup Bidouilleu et pijaku :)
Ajouter un commentaire
Ce document intitulé « [VBA] Création dossier MkDir » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?