Renommer un onglet en date VBA
9
Bonjour à tous !
J'ai une petite question, possiblement bête
Invité
Bonjour 92Bery,
A défaut d'un fichier (qui est souhaitable) Il faudrait commencer par nous donner le code utilisé actuellement
A+
9
Bien sûr !
Voici le code :
Sub Archiver()
Dim i As Long, mois As Date
'On selectionne dans le classeur la feuille à archiver en la copiant
Windows("Fichier.xlsm").Activate
Sheets("Rappel").Select
Cells.Select
Selection.Copy
' On ouvre le fichier archive ou l'on va copier le feuille
Workbooks.Open "Z: \Chemin\fichierArchive.xlsx").Activate
Sheets.Add After:=ActiveSheet
'On va copier la feuille en format brut pour garder les valeurs intactes
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'On va recopier la mise en forme pour avoir un fichier plus joli ??
Windows("Fichier.xlsm").Activate
Application.CutCopyMode = False
Selection.Copy
Windows("Archive.xlsx").Activate
Cells.Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End SubInvité
Re,
Voici le code nettement optimisé et qui devrait fonctionner
Sub Archiver()
Dim Wbk1 As Workbook
' On ouvre le fichier archive ou l'on va copier le feuille
Set Wbk1 = Workbooks.Open("Z:\Chemin\fichierArchive.xlsx")
' On copie la feuille dans le classeur
Workbooks("Fichier.xlsm").Sheets("Rappel").Copy After:=Wbk1.Sheets(Wbk1.Sheets.Count)
' Avec la nouvelle feuille créer
With ActiveSheet
With .Cells
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
' On renomme la feuille
.Name = Format(Date, "mmmm yyyy")
End With
Wbk1.Close SaveChanges:=True
Set Wbk1 = Nothing
End SubA+