Onglet avec valeur de cellule

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 !

la lozere

XLDnaute Occasionnel
Bonjour,
Est-il possible de faire varier le nom d'un onglet en fonction de la valeur d'une cellule de ce même onglet.
Bref, en changeant la valeur dans une cellule, je voudrais que le nom de l'onglet change.

Merci.
 
Re : Onglet avec valeur de cellule

Bonjour

Salut jeanpierre


Ci dessous une procédure qui devrait répondre à la question
Code:
Option Explicit
Dim flag As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
If flag = True Then Exit Sub
If Target.Value = "" Then Exit Sub
If Not Intersect(Target, Range("a1")) Is Nothing Then
    Sheets(Target.Worksheet.Name).Name = Target.Value
End If
flag = False
End Sub

A tester

JP
 
Re : Onglet avec valeur de cellule

Merci,
Effectivement on est pas loin de ce que je recherche. Cela marche sur l'ensemble d'un classeur.
Mais à la place de l'appliquer à tout un classeur, je voudrais l'appliquer qu'a certaines feuilles.
Et que ce changement de nom ce fasse automatiquement lors du changement de valeur dans la cellule.

Pour le changement automatique il doit bien y avoir un truc avec Worksheet_Change

Mais bon je dois bien avouer que je ne connais pas grand chose au VBA, alors je ne sais pas comment modifier le code.

A plus.
 
Re : Onglet avec valeur de cellule

re-salut,
J'ai finit par trouver.

Je me suis servi de cette réponse:
https://www.excel-downloads.com/threads/nommer-onglet-a-partir-de-2-cellules.68494/

Voici mon code:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$4" Then
  ActiveSheet.Name = Range("F4")
End If

End Sub

Dans mon cas, quand la cellule D4 change, le nom de l'onglet prend la valeur de la cellule F4.
Je n'ai pu le faire directement car la cellule F4 contient une formule dépendant du choix en D4. Et un code directement dépendant de F4 ne marchait pas.

Merci à vous.
 
Dernière édition:
Re : Onglet avec valeur de cellule

Salut,
Je reviens à la charge car je suis globalement satisfait mais il y a quand même un truc qui me chagrine.
Le modèle que j'ai trouvé, fait par pierrejean, fonctionne bien (dans l'exemple, feuille "Modèle de base"), mais si maintenant (dans l'exemple, feuille "tt") la valeur de la cellule A1 n'est pas une entré clavier mais un résultat d'une autre cellule (du genre en A1, =B1), le nom de l'onglet ne change pas et ceci même après ré-ouverture du fichier.
Comment faudrait-il que je modifie le code?

De plus, étant donné que je jongle entre plusieurs feuilles, il m'arrive d'avoir très ponctuellement (en phase transitoire) ,2 feuilles avec la même valeur dans la cellule de référence pour le nom de la feuille. Et du coup, j'ai forcément "Microsoft Visual Basic" qui me renvoi "Erreur d'exécution '1004':"
Ce que je voudrais, c'est que par défaut j'ai l'équivalent du clic sur "Fin". Ou mieux, juste un petit panneau d'avertissement à valider.

Merci.
 

Pièces jointes

Dernière édition:
Re : Onglet avec valeur de cellule

Bonsoir
Ce code permet de changer le nom après un calcul.

Code:
Private Sub Worksheet_Calculate()
If ActiveSheet.Name = "$A$2" Then Exit Sub
ActiveSheet.Name = Sheets(ActiveSheet.Name).Range("$A$2")
End Sub
Concernant l'erreur il faut l'intercepter

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo Worksheet_Change_Error

If Target.Address = "$A$1" Or Target.Address = "$A$2" Then
  ActiveSheet.Name = Target.Value
End If

   On Error GoTo 0
   Exit Sub

Worksheet_Change_Error:
Call MsgBox("une erreur s'est produite pour le changement de nom", vbCritical, Application.Name)


End Sub

A tester

JP
 
Re : Onglet avec valeur de cellule

Salut,
Merci pour le bout de code.
Sur l'exemple que j'ai fourni il marche nickel, mais dès que je veux l'appliquer à mon fichier d'on la cellule de référence fait appel à une cellule d'une autre feuille, ça plante en faisant une erreur sur cette ligne:

ActiveSheet.Name = Sheets(ActiveSheet.Name).Range("$A$2")

Alors parfois ça plante, parfois cela ce met à tourner en boucle et je suis obligé de passer par le gestionnaire de taches pour sortir. 😕

Je n'arrive pas à comprendre.
 
- 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
5
Affichages
433
Réponses
4
Affichages
222
  • Question Question
XL 2021 planning
Réponses
5
Affichages
231
Retour