renommer un onglet automatiquement

enki

XLDnaute Nouveau
Bonjour,

je souhaite renommer mes onglets, lorsque je change dans la feuille la cellule A1 (qui une date), je voudrais voir apparetre le mois dans le nom de l'onglet.
je voudrais que cette macro marche sur chaque onglet.
merci
 

job75

XLDnaute Barbatruc
Re : renommer un onglet automatiquement

Bonsoir enki,

Si vous y tenez, macro à placer dans ThisWorkbook :

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
On Error Resume Next
If Source.Address = "$A$1" Then Sh.Name = Application.Proper(Format(Source, "mmmm"))
End Sub

A+
 

job75

XLDnaute Barbatruc
Re : renommer un onglet automatiquement

Re,

Si le nom du mois a déjà été donné à une autre feuille, ou si A1 n'est pas une date, la macro suivante annule l'entrée :

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
If Source.Address <> "$A$1" Then Exit Sub
On Error Resume Next
Sh.Name = Application.Proper(Format(Source, "mmmm"))
[COLOR="Red"]If Source <> "" And (Err Or Not IsDate(Source)) Then Application.Undo[/COLOR]
End Sub

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : renommer un onglet automatiquement

Re,

Attention, j'ai modifié la dernière macro a 22h02...

Mais si rien ne se passe, c'est que les macros ne sont pas activées.

Si vous n'êtes pas sur Excel 2007, menu Outils-Macro-Sécurité et choisissez le niveau faible ou moyen.

Puis fermez et rouvrez le fichier. Avec le niveau moyen, un message demandera si vous voulez activer les macros.

Si vous êtes sur Excel 2007, dites-le, la procédure est un peu différente.

A+
 

job75

XLDnaute Barbatruc
Re : renommer un onglet automatiquement

Re,

J'ai supprimé à 22h27 les 2 Application.EnableEvents qui étaient en fait inutiles.

Sous Excel 2000, cette macro doit marcher sans problème. Entrez une date en A1 et voyez l'onglet.

A+
 

enki

XLDnaute Nouveau
Re : renommer un onglet automatiquement

ok merci sa marche dans un nouveau fichier.

mais dans mon classeur la cellule est lié dans un autre classeur('Récap Annuel'!A1), donc sa ne marche pas.

a tu une solution.

merci
 

job75

XLDnaute Barbatruc
Re : renommer un onglet automatiquement

Re,

Il aurait été mieux de le dire dès le départ, je ne me serais pas cassé la tête.

Toujours dans ThisWorkbook, une macro qui se déclanche quand les formules des feuilles sont recalculées :

Code:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
On Error Resume Next
Sh.Name = Application.Proper(Format(Sh.Range("A1"), "mmmm"))
End Sub

Maintenant si les valeurs entrées dans la feuille Récap Annuel de l'autre classeur ne sont pas bonnes, à vous de voir.

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : renommer un onglet automatiquement

Re,

Il vaut mieux remettre de nouveau ici les Application.EnableEvents :

Code:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Application.EnableEvents = False
On Error Resume Next
Sh.Name = Application.Proper(Format(Sh.Range("A1"), "mmmm"))
Application.EnableEvents = True
End Sub

A+
 

job75

XLDnaute Barbatruc
Re : renommer un onglet automatiquement

Re,

Pas de problème enki :

Code:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Application.EnableEvents = False
On Error Resume Next
Sh.Name = Application.Proper(Format(Sh.Range("A1"), "[COLOR="Red"]mmmm yy[/COLOR]"))
Application.EnableEvents = True
End Sub

Bonne nuit.
 

Discussions similaires

Réponses
5
Affichages
195

Membres actuellement en ligne

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth