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
16035
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 juin 2021
551
Bonjour, message modifié par l'ajout des balises de code.
Voir ici comment utiliser la coloration syntaxique.
Messages postés
16035
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 juin 2021
551
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
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 juin 2021
156
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
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 juin 2021
156
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
32973
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
351
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