problème pour nommer un classeur

roazak

XLDnaute Nouveau
Bonjour
Je suis novice en VBA et en bidouillant un peu des codes que j'ai trouvé sur internet j'ai construit ce code mais in ne marche pas.

Code:
Sub copier()
ThisWorkbook.SaveAs "H:\sauvegardes\test1.2.xls"
Workbooks("test1.2.xls").Activate
Sheets("Feuil1").Select
ActiveWindow.SelectedSheets.Delete
Sheets("Formulaire").Select
ActiveWindow.SelectedSheets.Delete
Sheets("Feuil2").Select
ActiveWindow.SelectedSheets.Delete
 With Workbooks("test1.2.xls")
 .Name = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & Hour(Time) & "h" & Minute(Time) & "min"
End Sub

Mon erreur est apparemment à la denière ligne pour renommer le classeur. Il y a le message d'erreur "Erreur de compilation:Impossible d'affecter à une propriété en lecture seule" avec ".Name" sélectionné.

Je suis sûr que ça doit être une petite erreur du genre oublier de cocher une case ou alors il me manque quelque chose dans le code.

Merci d'avance pour votre réponse.
 

Staple1600

XLDnaute Barbatruc
Re : problème pour nommer un classeur

Re, ______________________________________________________EDITION: Salut job75

Pour formater le nom de ta copie, je ferai plutot comme ceci:

Code vba:
Sub copierII()
Dim nomfichier$
nomfichier = Format(Date, "dd-mm-yyyy_") & Format(Time, "hhmm") & ".xls" 'test ok
ActiveWorkbook.SaveAs Filename:="C:\Temp\" & nomfichier, FileFormat:=xlNormal
End Sub





Je te laisse adapter dans ton code initial et faire les tests.
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : problème pour nommer un classeur

Bonjour roazak,

Je suis sûr que ça doit être une petite erreur du genre oublier de cocher une case

Pas du tout, simplement on ne peut pas modifier comme ça le nom d'un classeur ouvert.

Essayez plutôt :

Code:
Sub copier()
Application.DisplayAlerts = False
Sheets(Array("Feuil1", "Formulaire", "Feuil2")).Delete
ThisWorkbook.SaveAs "H:\sauvegardes\" & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & Hour(Time) & "h" & Minute(Time) & "min" & ".xls"
End Sub
Edit : salut JM, je ne t'avais pas vu.

A+
 
Dernière édition:

roazak

XLDnaute Nouveau
Re : problème pour nommer un classeur

En fait j'ai sauvegardé-sous au début sous un autre nom pour pouvoir retrouver la feuille sauvegardée (test1.2.xls) et supprimer les feuilles qui ne m'intéressent plus.Puis j'ai renommé la feuille avec la date du jour.
J'ai essayé votre code inséré à la fin du mien:
Code:
Sub copier()
Dim nomfichier$
ThisWorkbook.SaveAs "H:\sauvegardes\test1.2.xls"
Workbooks("test1.2.xls").Activate
Sheets("Feuil1").Select
ActiveWindow.SelectedSheets.Delete
Sheets("Formulaire").Select
ActiveWindow.SelectedSheets.Delete
Sheets("Feuil2").Select
ActiveWindow.SelectedSheets.Delete
nomfichier = Format(Date, "dd-mm-yyyy_") & Format(Time, "hhmm") & ".xls" 'test ok
ActiveWorkbook.SaveAs Filename:="C:\Temp\" & nomfichier, FileFormat:=xlNormal
End Sub

ça me demande si je veux supprimer les feuilles puis il y a une erreur:

"erreur 1004
Microsoft excel ne peut accéder au fichier "C:\sauvegardes\"
plusieurs raisons sont possibles:
-le nom du fichier ou le chemin d'accès n'existe pas.
-Ce fichier est actuellement utilisé par un autre programme.
-le classeur que vous essayez d'enregistrer porte le même nom qu'un classeur déjà ouvert."
 

roazak

XLDnaute Nouveau
Re : problème pour nommer un classeur

Je me suis trompé dans mon message de 10h50: dans le code je n'ai pas mis " Filename:="C:\Temp\" " mais
VB:
"Filename:="H:\sauvegarde\"
et dans la description de l'erreur le message était
VB:
"H:\sauvegardes\"
et non "C:\sauvegardes\"
 

didus

XLDnaute Occasionnel
Re : problème pour nommer un classeur

Bonjour à tous,
Je m’immisce car si le post est résolu pour Roazac ma question est dans le droit fil de sa demande:

je sauvegarde un gros fichier de travail par macro périodique dont la partie sauvegarde donne ça:

ChDir "L:\Patrimoine\TDB-OI\Sauvegardes"
ActiveWorkbook.SaveAs Filename:= _
"L:\Patrimoine\TDB-OI\Sauvegardes\Tdb-OI." & Format(Now, " yyyy-mm-dd ""à"" hh""h""mm""mn""ss""") & ".xlsm" _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False


Mon besoin,
Sauvegarder le fichier soit (nom complété et autre répertoire) mais revenir ou rester sur le fichier en cours de travail (tdb-oi.xlsm) , car après sauvegarde, le classeur ouvert porte le dernier nom modifié...

Merci d'avance pour vos réponses
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 938
Membres
103 988
dernier inscrit
Feonix