Enregistrer sous [Résolu]

Signaler
-
 Silver -
Bonjour,

Le problème sur ma macro :
Si le dossier existe déjà il plante.
Qui sait d'où peux venir mon erreur ?

Merci par avance


Sub Save() 

Dim LeChemin As String, LeNomDuFichier As String, Nomdudossier As String 

    Nomdudossier = Format([C6], "ddmmyy") 

    LeChemin = "Y:\Divers\In progress\testnico\" 
    
    LeNomDuFichier = [A373] & "_" & Format([C6], "ddmmyy") & "_CT" & ".xls" 
        
        If Dir(LeChemin & Nomdudossier) = "" Then MkDir (LeChemin & Nomdudossier) 
            

ThisWorkbook.SaveAs LeChemin & Nomdudossier & "\" & LeNomDuFichier 


MsgBox "You can find in file" & LeChemin, vbInformation 

Application.Quit 


End Sub

4 réponses

Messages postés
15402
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 janvier 2021
502
Bonjour, message modifié par l'ajout des balises de code.
Voir ici comment utiliser la coloration syntaxique.
Messages postés
15402
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 janvier 2021
502
Ce serait bien de marque à quelle ligne ça plante et le texte de l'erreur
Bonjour,

ca plante au moment de la création du dossier c'est a dire au MkDir (Erreur d'accès Chemin/Fichier)
Je pense qu'il bug car il veux créer un dossier qui est déjà présent...
Mais je voulais lui dire de le créer seulement si il est inexistant...

As tu une idée de mon erreur de syntaxe ?

Merci beaucoup pour ton aide
Messages postés
14760
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021
151
Regardes les paramètres de la fonction Dir, il y a une valeur pour dure de chercher les dossier.
J'ai rajouté la ligne :

ChDir (LeChemin & Nomdudossier)

Juste avant la ligne :

If Dir (LeChemin & Nomdudossier) = "" Then MkDir (LeChemin & Nomdudossier)

Mais toujours le même message d'erreur...
Messages postés
14760
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021
151
Dir(...,vbDirectory) ?
J'ai essayé ça mais toujours le même problème...
J'ai fait plein d'essai mais la je bloque...
Peux tu m'aider stp ?


Sub SaveAndClasse() 

Dim LeChemin As String, LeNomDuFichier As String, Nomdudossier As String

Nomdudossier = Format([C6], "ddmmyy")

LeChemin = "Y:\Divers\In progress\testnico\" & Nomdudossier

LeNomDuFichier = [A373] & "_" & Format([C6], "ddmmyy") & "_CT" & ".xls"


If Dir(LeChemin & "\" & LeNomDuFichier, vbDirectory) = "" Then MkDir LeChemin


ThisWorkbook.SaveAs LeChemin & "\" & LeNomDuFichier


MsgBox "You can find in file" & LeChemin, vbInformation

Application.Quit


End Sub
Messages postés
31093
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2021
342
Tu recherches un dossier ... et tu mets le chemin vers un fichier..
If Dir(LeChemin & "\", vbDirectory) = "" Then MkDir LeChemin


PS: Attention... mkdir ne te permet de créer les dossiers que un par un...
Si tu as un chemin du genre : c:\tmp\toto\tata\ ... et que ni tmp... ni toto.. ni tata n'existe... alors...il ne pourra pas les créer.
Il faudra créer : tmp ... puis créer toto.. puis créer tata.
Ca fonctionne ! Super !
Merci beaucoup pour votre aide