Nommer automatiquement les noms des feuilles en fonction du contenu d'une cellule

dguillerme

XLDnaute Junior
Bonjour,

Je souhaiterais que les noms des feuilles de mon classeur soient automatiquement modifiés en fonction d'un numéro saisi dans la cellule B1 de chaque feuille.

Exemple:
Cellule B1 feuille 1 = 1011. Nom de la feuille = 1011
Cellule B1 feuille 2 = 1012. Nom de la feuille = 1012
etc...

J'ai cru comprendre qu'il faudrait saisir une macro dans ThisWorkBook mais je n'ai aucune idée du script à saisir.
Si vous pouviez me guider pas à pas dans la mise en oeuvre de cette macro, ce serait super sympa ;-)

Par avance, merci pour votre aide.
 

Pièces jointes

  • Onglet_num.xlsx
    10.2 KB · Affichages: 34

JCGL

XLDnaute Barbatruc
Re : Nommer automatiquement les noms des feuilles en fonction du contenu d'une cellul

Bonjour à tous,

Dans le module ThisWorkBook :

VB:
Option Explicit
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
ActiveSheet.Name = Cells(1, 2)
End Sub

A+ à tous
 

dguillerme

XLDnaute Junior
Re : Nommer automatiquement les noms des feuilles en fonction du contenu d'une cellul

Bonsoir et merci pour votre réponse.

Je suis loin d'être un expert VBA. J'ai donc quelques questions car je n'ai pas réussi à faire fonctionner ce code.
Faut-il remplacer Cells (1, 2) par le nom de la cellule concernée?
Une fois que j'ai copié le code, faut-il laisser les options par défaut? (WorkBook et SheetActivate)
Dois-je enregistrer la macro?

Merci beaucoup!
 

JCGL

XLDnaute Barbatruc
Re : Nommer automatiquement les noms des feuilles en fonction du contenu d'une cellul

Bonjour à tous,

Cells(1,2) correspond à B1 (Cells(Ligne,Colonne) donc à toi d'adapter.
Je ne comprends pas le coup des Options par défaut.

Le fichier tout prêt.

A+ à tous
 

Pièces jointes

  • JC Onglet_num.xlsm
    19.8 KB · Affichages: 40

JCGL

XLDnaute Barbatruc
Re : Nommer automatiquement les noms des feuilles en fonction du contenu d'une cellul

Bonjour à tous,

Remplacer le nom des onglets par le nom souhaité :

VB:
Option Explicit


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If ActiveSheet.Name <> "Test" And ActiveSheet.Name <> "Essai" Then ActiveSheet.Name = Cells(1, 2)
End Sub

A+ à tous
 

Si...

XLDnaute Barbatruc
Re : Nommer automatiquement les noms des feuilles en fonction du contenu d'une cellul

salut

et pour éviter des messages d'erreur,
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  If Sh.Name = "Feuil1" Or Sh.Name = "Feuil2" Then Exit Sub
  On Error GoTo 1
  Sh.Name = [B1]: Exit Sub
1 MsgBox "la feuille  " & [B1] & " existe déjà !", vbCritical, "Action avortée ..."
End Sub

bien sûr Si... aucune erreur n'est envisageable, tout simplement avec la variariable du ByVal Sh As Object,
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  If Sh.Name = "Feuil1" Or Sh.Name = "Feuil2" Then Exit Sub
  Sh.Name = [B1]
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 723
Messages
2 081 934
Membres
101 844
dernier inscrit
pktla