Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

nom d'onglet = nom dans une cellule

  • Initiateur de la discussion Initiateur de la discussion eastwick
  • Date de début Date de début

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 !

eastwick

XLDnaute Accro
Bonjour à toutes et tous,
Une formalité pour vous, pros d'Excel !
J'aimerais que mon nom d'onglet feuille lambda prenne le nom du texte contenu dans la cellule C2 de cette même feuille.ans le cas présent, il s'agit du mois (Janvier, Février... etc)
Merci beaucoup
 
Re : nom d'onglet = nom dans une cellule

Bonjour eastwick

A mettre dans le module de la feuille concernée.
Si le nom existe déja, message d'erreur.
Si le nom n'est pas valide ou si la cellule est vidée le nom existant est conservé :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Worksheet
If Target.Address <> "$C$2" Then Exit Sub
On Error Resume Next
Set Sh = Sheets(Target.Value)
If Err Then
    Me.Name = Target.Value
Else
    MsgBox "Cette feuille existe déja!", 64, " Impossible de nommer la feuille"
End If
End Sub

Cordialement
 
Dernière édition:
Re : nom d'onglet = nom dans une cellule

En fait je souhaite que mon nom d'onglet soit égal au texte contenu dans la cellule C2 de la même feuille.
Si en C2 = Septembre alors nom d'onglet = Septembre
 
Re : nom d'onglet = nom dans une cellule

Re
J'ai bien compris, mais il faut le temps de le faire....
Re
Pourquoi ne pas mettre tout de suite un fichier exemple ?
Une proposition.
Il ne faut pas utiliser les contrôles "Formulaires", mais les contrôles ActiveX bien plus complets et gérables.
J'ai remplacé ta liste par une ActiveX.
Pour la remplir a l'activation de la feuille:
VB:
Private Sub Worksheet_Activate()
Dim T As Variant, i&
If Me.ListBox1.ListCount = 0 Then
    T = Sheets("paramètres").Range("D4:D15")
    For i = LBound(T, 1) To UBound(T, 1)
        Me.ListBox1.AddItem T(i, 1)
    Next i
End If
End Sub
Pour la gérer:
VB:
Private Sub ListBox1_Click()
Dim Sh As Worksheet, X As String
If Me.ListBox1.ListIndex = -1 Then Exit Sub
X = ListBox1.List(ListBox1.ListIndex)
Me.Range("$C$2").Value = X
Me.Range("$C$1").Value = ListBox1.ListIndex + 1
On Error Resume Next
Set Sh = Sheets(X)
If Err Then
    Me.Name = X
Else
    MsgBox "Cette feuille existe déjà!", 64, " Impossible de nommer la feuille"
End If
End Sub

Tout est a mettre dans le module de la feuille concernée
Cordialement
 

Pièces jointes

Re : nom d'onglet = nom dans une cellule

Merci, c'est très gentil mais n'y a t-il pas moyen de laisser le fichier avec une liste de type formulaire ?
Si pas moyen, comment puis-je voir si mon ActiveX est bien reliée à la bonne plage de données dans l'onglet Paramètres ?
Encore merci quoi qu'il en soit
 
Re : nom d'onglet = nom dans une cellule

Re
Il n'y pas d'oglet paramètre, les valeurs sont données à l'activation de la feuille avec comme plage Sheets("paramètres").Range("D4😀15").
Puis les cellules C2 et C1 sont remplies au ListBox1_Click.

Sans ActiveX tu vas monter une usine à gaz.

Les contrôles formulaires ne sont là que pour assurer une compatibilté descendante.
Depuis XL97, les Actives X existent et ouvrent bien plus de possibilités.

Cordialement
 
- 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
1
Affichages
346
wDog66
W
Réponses
2
Affichages
653
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…