macro création feuille

franck70

XLDnaute Junior
Bonjour à toutes et à tous.

J'y vais de ma petite question habituelle du week-end.
C'est un peu plus compliqué que d'habitude!

J'ai une feuille par mois. Chaque mois, je créé une nouvelle feuille en copiant la dernière, je la colle en dernier et je la renomme en fonction du nouveau mois. Ensuite, je lance une macro sympas qui me fait plein de truc!!!

Ce qu'il me manque, c'est qu'il faudrait que ma macro soit valable pour tous les mois indéfiniement, alors que là, ça ne marche que pour le mois d'octobre (le problème, apparemment, c'est que je mets de nom de la feuille et que je devrais dire que c'est la feuille active ou un truc dans le genre. Egalement, il faudrait que la feuille du mois le plus ancien soit supprimée (c'est celle qui est normalement tout à gauche). Pour ça, j'ai aucune idée!

Merci à toutes et à tous
ci-joint la macro et le fichier

Sheets('Oct-05').Select
Sheets('Oct-05').Copy After:=Sheets(2)
Range('B5').Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Columns('A:A').Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Range('C5').Select
Selection.AutoFill Destination:=Range('C5:D5'), Type:=xlFillDefault
Range('C5:D5').Select
Range('D5').Select
Selection.NumberFormat = 'mmm-yy'
Selection.Copy
Sheets('Oct-05 (2)').Select
Sheets('Oct-05 (2)').Name = 'nov-05'
Application.CutCopyMode = False
Selection.NumberFormat = 'mmmm-yy'
End Sub

[file name=newsheet.zip size=7047]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/newsheet.zip[/file]

Message édité par: franck70, à: 08/10/2005 22:42
 

Pièces jointes

  • newsheet.zip
    6.9 KB · Affichages: 10

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Franck, bonsoir le forum,

Essaie ce code adapté simplifié de ta macro :


Sub Macro4()
'copie la dernière feuille et place cette copie en dernier
Sheets(Sheets.Count).Copy After:=Sheets(Sheets.Count)
Range('B5').Copy 'copy la cellule B5
'colle sa valeur sur elle même
Range('B5').PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
'supprime la colonne A
Columns('A:A').Delete Shift:=xlToLeft
'recopie en D5 la formule de C5
Range('C5').AutoFill Destination:=Range('C5:D5'), Type:=xlFillDefault
'renomme la feuille
ActiveSheet.Name = Format(Range('D5'), 'mmm-yy')
'désactive les messages Excel ('Les feuilles sélectionnées... blablabla' dans ce cas)
Application.DisplayAlerts = False
Sheets(1).Delete 'supprime la première feuille
Application.DisplayAlerts = True 'réactive les messages Excel
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 495
Messages
2 088 966
Membres
103 993
dernier inscrit
Essens