Sauvegarder un fichier dans un autre répertoire par macro
Ab68
Messages postés
3
Statut
Membre
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonsoir le forum
Je suis un débutant en création de macro, glanant ici et là les codes ou en enregistrant les actions sous Excel.
Mon fichier initial est enregistré dans D:\Mes documents\CCS\"Compil randos printemps".
Ce fichier reçoit des valeurs de 4 autres fichiers à dates espacées avec sauvegardes intermédiaires manuelles(OK). Je galère pour -après la 4ième saisie, un tri décroissant et suppression de lignes vides(OK)- à sauvegarder ce fichier dans un sous répertoire.Le chemin souhaité serait D:\Mes documents\CCS\2013\"nom de fichier+2013".xls (2013 étant un sous dossier existant). Si sous dossier inexistant, en fonction de ("G1")(cellule formatée date année), création d' un sous répertoire à D:\.......\CCS\.
Voici le code sur lequel je bute
Dim chemin As String
Dim repertoire As String
Nom = Range("A1")
Année = Range("G1")
chemin = "D:\Mes documents\CCS\" & Range("G1").Value & ""
repertoire = Range("G1").Value
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path \ "& Nom & Année"
If Dir(chemin & repertoire, 16) ="" Then MkDir "D:\Mes documents\CCS\" & Range("G1").Value
Un grand Merci à ceux qui prendront le temps de me lire et m' apporter éventuellement une solution.
Joyeuses Pâques
Je suis un débutant en création de macro, glanant ici et là les codes ou en enregistrant les actions sous Excel.
Mon fichier initial est enregistré dans D:\Mes documents\CCS\"Compil randos printemps".
Ce fichier reçoit des valeurs de 4 autres fichiers à dates espacées avec sauvegardes intermédiaires manuelles(OK). Je galère pour -après la 4ième saisie, un tri décroissant et suppression de lignes vides(OK)- à sauvegarder ce fichier dans un sous répertoire.Le chemin souhaité serait D:\Mes documents\CCS\2013\"nom de fichier+2013".xls (2013 étant un sous dossier existant). Si sous dossier inexistant, en fonction de ("G1")(cellule formatée date année), création d' un sous répertoire à D:\.......\CCS\.
Voici le code sur lequel je bute
Dim chemin As String
Dim repertoire As String
Nom = Range("A1")
Année = Range("G1")
chemin = "D:\Mes documents\CCS\" & Range("G1").Value & ""
repertoire = Range("G1").Value
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path \ "& Nom & Année"
If Dir(chemin & repertoire, 16) ="" Then MkDir "D:\Mes documents\CCS\" & Range("G1").Value
Un grand Merci à ceux qui prendront le temps de me lire et m' apporter éventuellement une solution.
Joyeuses Pâques
A voir également:
- Sauvegarder un fichier dans un autre répertoire par macro
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Fichier rar - Guide
- Creer un fichier .bat - Guide
5 réponses
Bonjour lermitte222
En copiant le code dans le haut du module et seulement ce code, je reçois le msg Erreur de compilation: Instruction incorrecte à l' extérieur d'une procédure à la ligne : NvRep = "D:\ Mes documents etc...
Merci pour la rapidité de ta réponse à ma première sollicitation.
Bonne journée
En copiant le code dans le haut du module et seulement ce code, je reçois le msg Erreur de compilation: Instruction incorrecte à l' extérieur d'une procédure à la ligne : NvRep = "D:\ Mes documents etc...
Merci pour la rapidité de ta réponse à ma première sollicitation.
Bonne journée
Oui je viens de refaire l' essai, En première ligne : Private Declare Function etc.
puis les 3 lignes : Dim NvRep
NvRep = "D:\Mes documents
MakeSure
et terminer par End Sub
(les instructions ont été copiées collées)
puis les 3 lignes : Dim NvRep
NvRep = "D:\Mes documents
MakeSure
et terminer par End Sub
(les instructions ont été copiées collées)
Bonjour,
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & Nom & Année & ".xls"
Pour créer ou pas le répertoire,
Tu colle cette déclaration tout en haut du module
Ensuite tu remplace la ligne..
Par
Mais attention !! normalement il n'y a pas de répertoire Mes documents sur le D:\
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & Nom & Année & ".xls"
Pour créer ou pas le répertoire,
Tu colle cette déclaration tout en haut du module
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long
Ensuite tu remplace la ligne..
If Dir(chemin & repertoire, 16) ="" Then MkDir "D:\Mes documents\CCS\" & Range("G1").Value
Par
dim NvRep as string
NvRep = "D:\Mes documents\CCS\" & Range("G1").Value
MakeSureDirectoryPathExists NvRep 'Si existe..fait rien sinon le/les crée(s).
Mais attention !! normalement il n'y a pas de répertoire Mes documents sur le D:\
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
En copiant le code dans le haut du module et seulement ce code, ????
Relis mon poste précédant AVEC ATTENTION SVP.
Relis mon poste précédant AVEC ATTENTION SVP.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Eh ben ça alors.. Faudrait quand même que tu apprenne à lire
Ensuite tu remplace la ligne.. Remplacer ça veux dire quoi ?
ça veux dire supprimer les lignes décrite et mettre A LA MEME PLACE les autre ligne.
Et y faut pas ajouter de End sub nulle part.
Difficile d'expliquer plus, apprend aussi les structures d'un code VBA. Sans ça tu n'ira pas loin.
A+
Ensuite tu remplace la ligne.. Remplacer ça veux dire quoi ?
ça veux dire supprimer les lignes décrite et mettre A LA MEME PLACE les autre ligne.
Et y faut pas ajouter de End sub nulle part.
Difficile d'expliquer plus, apprend aussi les structures d'un code VBA. Sans ça tu n'ira pas loin.
A+