Formule Mkdir qui ne fonctionne pas

Messages postés
2
Date d'inscription
mardi 16 avril 2019
Statut
Membre
Dernière intervention
16 avril 2019
- - Dernière réponse : cs_Le Pivert
Messages postés
6276
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 octobre 2019
- 17 avril 2019 à 08:11
Bonjour,

Je débute en VBA et j'ai tenté une macro pour enregistrer mes factures et contrats en .pdf mais également pour que ceux-ci soient directement classés dans des dossiers.

Seulement ma formule ne fonctionne pas, et je suis coincé depuis plusieurs jours dessus ; voici le message affiché : erreur d'exécution 75 Erreur d'accès chemin/fichier.
En débogage, ça surligne la ligne MkDir (MonAnnee). Lorsque je passe la souris dessus, ça m'affiche la bonne année = 2019. Et cela a fonctionné la première fois pour un fichier : création du dossier etc... Mais depuis ça ne fonctionne plus...

Voici la macro :

ActiveWorkbook.Save
ChDir "C:\Users\N......F...…..\OneDrive - TASAS\CONTRAT CLIENT"

Dim MonDossier As String
Dim MonAnnee As String
Dim MonMois As String
Dim MonClient As String
MonClient = Sheets("CONTRAT CLIENT").Range("F12").Value
MonDossier = "C:\Users\N......F...….\OneDrive - TASAS\CONTRAT CLIENT\"
MonAnnee = year(Now())
MonMois = month(Now()) & MonthName(month(Now()))
If month(Now()) < 10 Then
MonMois = "0" & MonMois
End If
MonMois = UCase(MonMois)
If Len(Dir(MonAnnee)) = 0 Then
MkDir (MonAnnee)
End If
ChDir MonAnnee
If Len(Dir(MonMois)) = 0 Then
MkDir (MonMois)
End If
ChDir MonMois
If Len(Dir(MonClient)) = 0 Then
MkDir (MonClient)
End If
ChDir MonClient
'ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF,

Merci si quelqu'un peut m'aider :-)
Afficher la suite 

4 réponses

Messages postés
13830
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 octobre 2019
311
0
Merci
Bonjour

pour poster un code, merci de lire et d'appliquer ce qui est décrit là
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ce qui est écrit dans VBA ne sont pas des formules, mais des instructions.

Et cela a fonctionné la première fois pour un fichier : création du dossier etc... Mais depuis ça ne fonctionne plus...
alors, je suppose que le dossier 2019 existe et que du coup, il ne peut pas en créer un nouveau qui s'appelle 2019

Commenter la réponse de Whismeril
Messages postés
2
Date d'inscription
mardi 16 avril 2019
Statut
Membre
Dernière intervention
16 avril 2019
0
Merci
Bonjour Whismeril,

Je vous remercie pour votre réponse.
J'ai regardé le lien et j'appliquerais pour la prochaine fois.

La solution pour réparer la macro serait donc de changer l'année pour 2020 ? ou de supprimer ?
Commenter la réponse de creoline974_4764
Messages postés
13830
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 octobre 2019
311
0
Merci
Supprimer implique de perdre toutes les données stockées dans ce répertoire.

En faire un nouveau qui s'appellerait 2020 ou tartempion c'est à toi de voir si ça colle à ton besoin.

Sinon, tu peux simplement tester s'il existe déjà et ne rien faire si oui.
Commenter la réponse de Whismeril
Messages postés
6276
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 octobre 2019
87
0
Merci
Bonjour,

il suffit de vérifier l'existence du dossier:

https://excel.developpez.com/faq/?page=FichiersDir#VerifExistenceDossier

comme ceci à adapter:

 Sub essai()
 Dim existe As Boolean
existe = DossierExiste("C:\Users\Daniel\Documents\MonAnnee")
If existe = False Then
MkDir ("C:\Users\Daniel\Documents\MonAnnee\")
End If
End Sub
Function DossierExiste(NomDossier As String) As Boolean
    DossierExiste = Dir(NomDossier, vbSystem + vbDirectory + vbHidden) <> ""
End Function



Commenter la réponse de cs_Le Pivert