XL 2013 Macro pour changer le mois sur les onglets

GILBERTO BRAGA

XLDnaute Occasionnel
Bonjour,

Je voudrais connaître la macro qui permet de changer le nom des onglets en fonction du mois dans la cellule B8.

J'ai besoin de remplacer automatiquement les noms des onglets de ma feuille de calcul d'accord au mois correspondant à la date laquelle se trouxe en B8.

Par exemplo : si en B8 j'ai la date le 01 janvier 2019, le nom de l'onglet sera " janvier ". Si B8 être modifiée pour le 01 février 2019, une macro devra y remplacer de façon automatique le nom, c'est-à-dire " février ".

Das le fichier ci-joint j'ai un code VBA, mais cela ne marche pas.

Merci pour votre aide

Gilberto - Brasil

Désolé, j'utilise Google Translate.
 

Pièces jointes

  • Banco de Horas.xlsm
    130.3 KB · Affichages: 22

cathodique

XLDnaute Barbatruc
Bonjour,

Il faut renommer tes feuilles manuellement avec des noms fictifs (par exemple A, b, c,... etc.).
La macro agira à l'activation de la feuille. Il faut remplacer ta macro par celle-ci
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If ActiveSheet.Name <> "Feriados" Then
ActiveSheet.Name = Range("E1").Value 'ou [E1]
End If
End Sub
 

job75

XLDnaute Barbatruc
Bonjour GILBERTO BRAGA, cathodique,
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Not Sh.[E1].Formula Like "=CHOOSE(*" Or Sh.[E1] = Sh.Name Then Exit Sub
For Each Sh In Worksheets
If Sh.[E1].Formula Like "=CHOOSE(*" Then Sh.Name = "µ" & Sh.[E1] 'nom provisoire
Next
For Each Sh In Worksheets
If Sh.Name Like "µ*" Then Sh.Name = Mid(Sh.Name, 2) 'nom définitif
Next
End Sub
A+
 

Pièces jointes

  • Banco de Horas(1).xlsm
    136.6 KB · Affichages: 27

job75

XLDnaute Barbatruc
Re,

Avec une Workbook_SheetCalculate le nom de la feuille s'adapte dès qu'une formule est recalculée :
Code:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
If Not Sh.[E1].Formula Like "=CHOOSE(*" Or Sh.[E1] = Sh.Name Then Exit Sub
Application.EnableEvents = False 'désactive les évènements
For Each Sh In Worksheets
If Sh.[E1].Formula Like "=CHOOSE(*" Then Sh.Name = "µ" & Sh.[E1] 'nom provisoire
Next
For Each Sh In Worksheets
If Sh.Name Like "µ*" Then Sh.Name = Mid(Sh.Name, 2) 'nom définitif
Next
Application.EnableEvents = True 'réactive les évènements
End Sub
A+
 

GILBERTO BRAGA

XLDnaute Occasionnel
Bonjour forum, bonjour Cath et Job75


Avant tout mes sincères remerciements.

La solution proposée par Job75 elle marche parfaitement.

La suggestion de Cath aussi, toutefois, selon la date choisie à la première feuille de calcul, se produit une erreur et un message apparaît :

“ Erreur d’exécution 1004. Ce nom a déjà choisi. Choisissez un autre “.

Merci,

Gilberto - Brasil
 

Discussions similaires

Statistiques des forums

Discussions
312 187
Messages
2 086 024
Membres
103 097
dernier inscrit
Benduch