XL 2013 Macro pour changer le mois sur les onglets

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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

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+
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
572
Retour