Formule Mkdir qui ne fonctionne pas

creoline974_4764 Messages postés 2 Date d'inscription mardi 16 avril 2019 Statut Membre Dernière intervention 16 avril 2019 - 16 avril 2019 à 19:30
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 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 :-)

4 réponses

Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 656
16 avril 2019 à 21:20
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

0
creoline974_4764 Messages postés 2 Date d'inscription mardi 16 avril 2019 Statut Membre Dernière intervention 16 avril 2019
16 avril 2019 à 22:16
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 ?
0
Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 656
16 avril 2019 à 22:55
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.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
Modifié le 17 avril 2019 à 08:26
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



0
Rejoignez-nous