Nom fichier = valeur cellules

Bonjour,

j'ai sur une feuille en H4, I4 et J4 le jour, mois et année du moment. Je voudrais faire une macro pour sauvegarder une copie de mon fichier actif dont le nom serait annéemoisjour.xls.

Mais je n'y arrive pas . Pouvez vous m'aider ?

Merci d'avance

Bonjour

Code dans un module

Sub enreg()
Dim Path As String, Nom As String
Path = ActiveWorkbook.Path & "\"
Nom = [H4] & [I4] & [J4] & ".xls"
ThisWorkbook.SaveAs Path & Nom
End Sub

Cordialement

Bonjour,

Amadeus, il en manque un bout ^^

Ce qu'il a voulu dire, je pense :

Sub Enregistrer()

ActiveWorkbook.SaveAs Filename:=Range("J4") & Range("I4") & Range("H4") & ".xlsm", FileFormat:= _
    xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End Sub

Cordialement.

Edit: Désolé, je pensais que c'était un oubli

Bonjour

Le temps de modifier...

Cordialement

!!!! erreur 1004 !!!!

la méthode 'saveas' de l'objet'_workbook' a échoué.

avec la première solution ça fonctionnait mais ça enregistrait un feuille blanche.

Merci

Si c'est mon code qui te mets l'erreur, c'est normal, j'avais laissez les cellules de test (H1,I1,J1) au lieu de H4,I4,J4, j'ai rectifié dans le post précédent.

Cordialement.

Non j'ai mis mes cellules et le fichier est bien nommé 2011728,xls

Mais la feuille est blanche.

J'ai remodifié, essais ActiveWorkbook au lieu de thisworkbook ou inversement, je ne sais pas au moment de quel "edit" du post tu as essayé.

Merci, j'ai quitté le bureau donc suite demain.

bonjour,

1er essai ce matin : ça fonctionne mais....

J'ai un classeur de macro perso, mon code est donc dans celui ci, j'ai pris soin en début d'écriture de mettre :

Workbooks("cdes.xls").Activate

Sheets("BBBB").Select

Jusqu'ici tout va bien mais :

1 - je veux sauvegarder ce fichier en .xls (plusieurs utilisateurs et avec des versions Excel anciennes)

2 - dans un dossier particulier

3 - je veux faire une sauvegarde, c'est à dire que je veux enregistrer une copie de mon fichier sous le nom aaaammjj.xls mais garder mon fichier actif "cdes.xls" à l'écran.

j'espère être clair, en tout cas merci pour votre aide.

Bonjour,

J'ai du bidouiller un peu, mais cela devrait fonctionner ^^

Sub Enregistrer()

Dim chemin As String, ClasseurIni As String, Nom As String

Workbooks("cdes.xls").Activate
Worksheets("BBBB").Select
ActiveWorkbook.Save
ClasseurIni = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name

With Application.FileDialog(msoFileDialogFolderPicker)
    .Show
    If .SelectedItems.Count > 0 Then chemin = .SelectedItems(1)
End With

Nom = chemin & "\" & Range("J4") & Range("I4") & Range("H4") & ".xls"

ActiveWorkbook.SaveAs Nom
ActiveWorkbook.Close

Workbooks.Open (ClasseurIni)

End Sub

Cordialement.

Super.

Vous ne vous arrêtez jamais, à peine demandé, sitôt répondu .... bravo et surtout merci.

Donc si je comprend on enregistre sous, on ferme et on rouvre le fichier original.

Une dernière question, par pur confort.

Puis je indiquer le chemin avant en mettant chemin = "P:\sauve\" (disque réseau) ? Pour éviter que la macro me demande le dossier de sauvegarde.

Si le chemin ne change jamais, oui modifie le code comme tel cela devrait aller (enfin je n'ai pas retesté):

Sub Enregistrer()

Dim ClasseurIni As String, Nom As String

Workbooks("cdes.xls").Activate
Worksheets("BBBB").Select
ActiveWorkbook.Save
ClasseurIni = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name

Nom = "P:\sauve\" & Range("J4") & Range("I4") & Range("H4") & ".xls"

ActiveWorkbook.SaveAs Nom
ActiveWorkbook.Close

Workbooks.Open (ClasseurIni)

End Sub

Sinon oui le fonctionnement est bien celui-ci, en fait quand on enregistre sous, cela te bascule automatiquement sur le fichier avec le nouveau nom en fermant celui de départ (je ne sais même pas si ca le sauvegarde d'ailleurs).

Du coup, au lancement de la macro, je récupère le nom / chemin de ton fichier de base (cdes.xls), je le sauvegarde pour prendre en compte les changements sinon il faut enlever la ligne

ActiveWorkbook.Save

puis je fais l'enregistrer sous.

Du coup je me retrouve sur le nouveau fichier, que je ferme, et je réouvre celui de base avec le chemin enregistré.

Cordialement.

Rechercher des sujets similaires à "nom fichier valeur"