[macro VBA] enregistrer classeur nom cellule

Résolu/Fermé
Messages postés
4
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
28 juillet 2008
-
 FAB -
Bonjour,

Je cherche comment coder pour enregister mon classeur avec un nom qui serait la valeur d'une cellule (nombre ou texte) ou même plutôt le nom d'une feuille dans ce classeur.

Je pensais définir une variable mais ceci ne marche pas dans le code:

ActiveWorkbook.SaveAs Filename:= _
"nom.xls"

Si quelqu'un a une idée pour moi..
Merci et bonne soirée!!
A voir également:

10 réponses

Messages postés
24295
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
27 janvier 2022
7 040
Bonjour,

ActiveWorkbook.SaveAs Filename:=[A1].Value
marche très bien avec test.xls en A1.
Si tu as un nombre ou un texte sans .xls dans A1 il faut le rajouter :
ActiveWorkbook.SaveAs Filename:=[A1].Value & ".xls"
Tu peux compléter le nom avec le chemin du répertoire...

eric
salut eric, super ta formule, par contre comme je suis novice en macro, peux tu me dire ce qu'il faut écrire pour attribuer le chemin d accès le mien est "C:\Users\Famille MOULA\Documents\projet\Eve\test.
je te remerci car actuellement tou mes fichiers enregistré vont directement dans mes documents je suis a peu de chose de réussir !!


merci beaucoup
Messages postés
24295
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
27 janvier 2022
7 040 > dokayun
Bonjour,

Soit tu mets le chemin et le nom du fichier dans 2 cellules d'une feuille, soit dans des variables vba, ou tu panaches.
Ex avec chemin en variable et nom fichier dans Feuil1!A1 :
sub sauve
dim chemin as string
chemin = "C:\Users\Famille MOULA\Documents\projet\Eve\"
ActiveWorkbook.SaveAs Filename:=chemin & worksheets("Feuil1").[A1].Value
end sub

eric
Messages postés
1
Date d'inscription
jeudi 4 février 2010
Statut
Membre
Dernière intervention
4 février 2010
>
Messages postés
24295
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
27 janvier 2022

Bonjour à toi,
Est-ce possible lorsqu'on donne le chemin d'accès pour l'enregistrement, qu'on puisse déterminer une partie de ce chemin d'accès à partir d'une variable dans une cellule de ton tableur excel ....

Dim chemin As String
chemin = "C:\Users\Louis\Desktop\Louis Nadeau\Travail\Entreprises\Matrixcel\Clients\resiver\Diagnostiques\"
ActiveWorkbook.SaveAs Filename:=chemin & Worksheets("diagnostique").[c2] & [" "] & [c4].Value



Exemple : Mes clients se retrouvent tous dans le même dossier du nom de "client"

client a
client b
client c


Dans mon tableur j'ai un endroit ou j'inscrit le nom du client ....j'aimerais pourvoir à partir de cette cellule lui indiquer l'endroit exacte ou aller enregistrer le document...
ex: C:\Users\Louis\Desktop\Louis \Travail\Entreprises\Matrixcel\Clients\ ???? \ diagnostique \"

j'ai fait des tentatives en nomant une variable ...mais je suis vraiment pas un programmeur ...alors si tu as 2 secondes pour m'aider se serait très apprécié.
Messages postés
24295
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
27 janvier 2022
7 040 >
Messages postés
1
Date d'inscription
jeudi 4 février 2010
Statut
Membre
Dernière intervention
4 février 2010

Bonjour,

Oui, le chemin peut être le résultat de la concaténation de plusieurs variables ou valeurs de cellules.
Mais dans saveas tu dois avoir le chemin+le nom du fichier en .xls
De plus le répertoire doit être existant, sinon il faut le créer avant (et pour le créer il faut que celui qui le contient soit existant).
ex:
MkDir "c:\temp\rep"
ActiveWorkbook.SaveAs Filename:="c:\temp\rep\test.xls"

eric
Bonjour,

J'ai besoin de votre aide aussi sur le même sujet (macro enregistrer sous)
Je souhaite mettre le chemin d'accés et le nom de la facture dans deux cellules.
Quel serait alors le code de la macro ?

Merci beaucoup,

Florie
Messages postés
16551
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
26 janvier 2022
3 261
salut Bastien

Option Explicit
Sub enregistrer_classeur()
Dim chemin As String, fichier As String
chemin = ThisWorkbook.Path
fichier = chemin & "\" & Range("B2") & ".xls"
ActiveWorkbook.SaveAs Filename:=fichier
End Sub


enregistre dans le répertoire du fichier source

Michel
Super la formule. Merci Michel
c'est bon j'avais un espace en trop !!^^
les mystères d'excel !!!!!!!
Messages postés
4
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
28 juillet 2008
1
Merci à tous pour ces réponses si rapides,
En plus j'ai le choix!!

A+
Messages postés
4
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
6 décembre 2010
2
Bonjour à tous,
La même demande sous Open Calc quelqu'un connaitrait-il car vb n'est pas pour Open.
Je vous remercie par avance
Messages postés
4
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
6 décembre 2010
2
Merci beaucoup algoplus
Au plaisir
Merci pour cette macro :
Sub enregistrer_classeur()
Dim chemin As String, fichier As String
chemin = ThisWorkbook.Path
fichier = chemin & "\" & Range("B2") & ".xls"
ActiveWorkbook.SaveAs Filename:=fichier
End Sub
Qui fonctionne parfaitement pour changer le nom du fichier sauvegardé !
Bonsoir à tous,

Avec ce code cela marche bien, seul PB ça plante avant de sauvegarder, où serait le PB ?

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

A = Range("S2").Value
B = Range("B3").Value
C = Range("B4").Value
ChDir ActiveWorkbook.Path
Repertoirefinalperso = Application.ActiveWorkbook.Path
ActiveWorkbook.SaveAs Filename:=Repertoirefinalperso & "\" & "Recapaie " & A & " " & B & " " & C & ".xls"

End Sub

Merci,
bonjour,

Alors voilà une nouvelle question sur le sujet.

J'ai réussis à faire en sortes que cela ne plante plus, mais ...

Pourquoi en changeant :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)


par :
Private Sub Workbook_BeforeClose(Cancel As Boolean)


Et bien cela ne plante plus ?

Cela aurait été plus pratique d'activer la macro sur enregistrement et non pas sur fermer, car à chaque fermeture cela me créera un fichier "Recapaie 2012 .xls" ....

Cordialement,
ca devrait marcher comme tu veux

nomfic = "C:\Documents and Settings\Agoplus\Bureau\" & Range("A1").Value & Sheets(2).Name & ".xls"

ActiveWorkbook.SaveAs Filename:=nomfic
Messages postés
4
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
6 décembre 2010
2
Bonjour,
Je te remercie vivement alogplus et te souhaite une excellente journée.
bonjour à tous

j'ai ce code pour enregistrer un fichier en fonction de la valeur d'une cellule. Je me suis inspiré des infos au dessus mais j'ai un beuf !!???

ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\k004418\Bureau\DVI" \ Range("A1").Value & ".xls", FileFormat:= _
xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False


peut être que les " ne sont pas au bon endroit

merci