Nom de l'onglet

Bonsoir Forum,

Quelle formule appliquer pour que l'onglet prenne le nom de la cellule B3 !

Merci

Adrien

Bonsoir,

Par code VBA :

Sub test()
On Error GoTo msg
ActiveSheet.Name = Range("B3")
Exit Sub
msg: MsgBox "la feuille ne peut pas être renommée"
End Sub

Amicalement

Bonsoir Dan

Ca n'a pas l'air de fonctionner. Mystère !

A+

Adrien

re,

Si mais cela ne se fait automatiquement. Il faut que tu exécutes le code par un bouton ou raccourci clavier.

Le code est à placer dans un module en VBA.

A moins que tu veuilles cela de manière automatique ?

10test-am-3.xlsx (20.14 Ko)
27modele.zip (4.55 Ko)

RE

Mon idée est de créer un tableau comme modèle. La cellule B3 sera vide alors.

L'utilisateur, en créant une nouvelle fiche, remplira la cellule du nom du plat.

Je joins un tableau qui sera "Modèle"

Merci

Adrien

Re,

Dis moi si cela correspond à ce que tu veux faire :

  • Dans ton fichier il y a une feuille appelée "Feuil1" mais qui s'appelera "Modèle"
  • Ton utilisateur va dupliquer cette feuille "Modèle" pour créer une nouvelle feuille qui portera le nom de la cellule B3

Tu confirmes ?

8jean.docx (16.24 Ko)

Bonjour

Selon le dernier énoncé de Dan,

Code de Feuil1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Name = Range("B3").Value
End Sub

Cordialement

Bonsoir Forum

Merci pour le code qui fonctionne. Une dernière petite question : y a t'il un moyen de rentrer ce code d'une seule fois dans une dixaine de fiches déjà créées ?

Merci

Adrien

PS : Oui pour la question de Dan.

Re,

Essaie ce code

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
'Macro Dan pour AdrienHeiser le 29/04/2010
'http://forum.excel-pratique.com/excel/nom-de-l-onglet-t16947.html
If ActiveSheet.Name <> "Modele" Then
If Not Intersect(Target, Range("B3")) Is Nothing Then
ActiveSheet.Name = Target
End If
End If
End Sub

Le code est à placer en VBA dans Thisworkbook. Veille bien au nom "Modele" de ta première feuille.

Pour ce qui de renommer tes feuilles et en supposant que ta première feuille est la feuille modèle, utilise ce code :

Sub test()
For i = 2 To ThisWorkbook.Sheets.Count
Sheets(i).Name = Range("B3")
Next
End Sub

Le code est à placer dans un module. Place ton curseur sur le mot sub test puis exécute ensuite en appuyant sur la touche F5 de ton clavier.

Attention à ta cellule B3 qui est fusionnée. Cela provoque souvent des plantages ou difficultés dans les codes...

Amicalement

Bojour Forum, Bonjour Dan

Tout fonctionne comme sur des roulettes.Merci pour ta participation.

A bientôt

Amicalement

Adrien

Rechercher des sujets similaires à "nom onglet"