Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
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
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
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
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
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
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.
- 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