Macro pour enregistrer un fichier dans un répertoire variable

benadry

XLDnaute Occasionnel
Bonsoir,

Je travaille sur une macro qui permet d'enregistrer un fichier Excel au format xlsx dont le nom est mentionné dans la cellule E1.
Le chemin de destination est fixe, mais le dossier de destination varie aussi en fonction de la valeur qui est en A8.

Par exemple, si en E1 j'ai la valeur TOTO20131010-001 et donc en A8 la valeur TOTO, le fichier doit se nommer TOTO20131010-001.xlsx et être enregistré dans le répertoire T:\XXX\YYYY\Année 2013\Fiches 2013\TOTO.

Si en E1, j'ai TUTU20131010-002 et en A8 TUTU, le fichier sera enregistré sous TUTU20131010-002.xlsx dans le répertoire T:\XXX\YYYY\Année 2013\Fiches 2013\TUTU.


J'ai fait la macro suivante, mais quelque chose cloche :

Code:
Sub Enreg()

Dim Chemin, Repertoire As String

Chemin = "T:\XXX\YYYY\Année 2013\Fiches 2013\"

Repertoire = [A8]

ActiveWorkbook.SaveAs Chemin & Repertoire & Filename:=[E1].Value & ".xlsx"

End Sub

La ligne ActiveWorkbook.SaveAs... est en rouge.

Quelqu'un aurait-il une idée ?


Merci d'avance.

Cordialement.
 

Pierrot93

XLDnaute Barbatruc
Re : Macro pour enregistrer un fichier dans un répertoire variable

Bonjour,

peut être manque t il un "\" :
Code:
Repertoire = [A8] & "\"
et le chemin au niveau de l'argument "filename" :
Code:
ActiveWorkbook.SaveAs Filename:=Chemin & Repertoire & [E1].Value
bon après midi
@+
 

Pierrot93

XLDnaute Barbatruc
Re : Macro pour enregistrer un fichier dans un répertoire variable

Re,

un code comme celui ci fonctionne chez moi sous 2003 et 2010...
Code:
Option Explicit
Sub test()
Dim chemin As String, Repertoire As String
chemin = CurDir
Repertoire = "\" & [A8] & "\"
ActiveWorkbook.SaveAs Filename:=chemin & Repertoire & [E1].Value
End Sub

attention le code est dans un autre classeur, sinon utiliser un format qui prend en charge les macros...
 

Pierrot93

XLDnaute Barbatruc
Re : Macro pour enregistrer un fichier dans un répertoire variable

Re,

avec prise en charge des macros :
Code:
Option Explicit
Sub test()
Dim chemin As String, Repertoire As String
chemin = CurDir
Repertoire = "\" & [A8] & "\"
ActiveWorkbook.SaveAs Filename:=chemin & Repertoire & [E1].Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
 

benadry

XLDnaute Occasionnel
Re : Macro pour enregistrer un fichier dans un répertoire variable

Re-

Décidément, quand ça ne veut pas ...

J'ai essayé tes deux codes et ça ne fonctionne pas ! J'ai toujours la même erreur 1004.

Peut-être cela vient-il du fait que mon fichier de départ est un modèle Excel 2010 (.xltm) ?

Par ailleurs, j'ai une autre macro avant. Cela peut-il générer un problème ?

Voici l'ensemble de mon code :

Code:
Sub NumerAuto()

Dim num As Integer
Range("B3").Select
num = Range("B3").Value
num = num + 1
Range("B3").Value = num

End Sub

Sub Enreg()
Dim Chemin, Repertoire As String


Chemin = "T:\XXX\YYYY\Année 2013\Fiches Anomalies 2013\"

Repertoire = [A8].Value & "\"

ActiveWorkbook.SaveAs Filename:=Chemin & Repertoire & [E1].Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled



End Sub


Sub Enreg_Envoi()

'Cette macro doit reprendre la même que ci-dessus Enreg(), avec en plus, un envoi automatique aux responsable du service concerné.

End Sub

Si tu veux bien avoir la gentillesse d'y regarder. Je crois que j'ai atteint les limites de mes compétences.

Merci d'avance.


Cordialement.
 

Pierrot93

XLDnaute Barbatruc
Re : Macro pour enregistrer un fichier dans un répertoire variable

Re,

bah là en l'état... je ne peux pas grand chose d'autre... si ce n'est de dire de bien vérifier le nom du chemin et du répertoire qui doivent exister au préalable..... le code doit être placé dans un module standard ou bien dans la feuille où se trouve les valeurs à récupérer.... comme ca, perso pas d'autre idée pour le moment....
 

benadry

XLDnaute Occasionnel
Re : Macro pour enregistrer un fichier dans un répertoire variable

Bonjour le forum,
Bonjour Pierrot,


Après avoir longuement cherché, je viens de me rendre compte d'une anomalie que je ne comprends pas du tout.

Ce que je n'ai pas dit hier, car je pensais que ça n'avait pas d'importance, c'est que j'ai, dans la cellule A8, une liste déroulante et que la valeur varie donc.
Or, je viens de constater en exécutant la macro pas à pas que, quand je passe sur Repertoire, dans :
Code:
ActiveWorkbook.SaveAs Filename:=Chemin & Repertoire & Worksheets("Feuil2").[E1].Value & ".xlsx"
il me donne une valeur qui est dans la liste déroulante, mais qui n'est pas celle présente dans la cellule à ce moment-là. Exemple, si j'ai AA, AB, AC, AD, AE dans ma liste déroulante et que la valeur est sur AC, la macro me renvoie AA. Dans ces conditions, ça ne peut pas marcher et j'ai toujours mon erreur 1004.

Quelqu'un a-t-il une idée ?

Merci d'avance.

Cordialement.
 

benadry

XLDnaute Occasionnel
Re : Macro pour enregistrer un fichier dans un répertoire variable

Re-,


Voici le classeur en question.


Désolé, mais j'ai mis du temps pour tout anonymiser.


Merci d'avance pour ton aide.


Cordialement.
 

Pièces jointes

  • Fiche anomalie1 - Copie.xlsm
    35 KB · Affichages: 79

benadry

XLDnaute Occasionnel
Re : Macro pour enregistrer un fichier dans un répertoire variable

Re-,

Je viens de réessayer une seconde fois après avoir placé la macro dans le moudle et mon problème de distorsion entre la valeur de la cellule A8 et le nom du répertoire est résolu !
C'est déjà ça !

Maintenant, avec le code suivant :

Code:
ActiveWorkbook.SaveAs Filename:=Chemin & Repertoire & Worksheets("Feuil2").[E1].Value & ".xlsm"

J'ai cette erreur-là :
La méthode SaveAs de l'objet Workbook a échoué.

On progresse, mais ce n'est pas encore tiptop !!

A +
 

Discussions similaires

Statistiques des forums

Discussions
312 764
Messages
2 091 870
Membres
105 084
dernier inscrit
lca.pertus