• Initiateur de la discussion Initiateur de la discussion o0o_tdsvi_o0o
  • 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 !

O

o0o_tdsvi_o0o

Guest
Avant de poster ici, j'ai déjà fait une recherche dans les forums mais je ne trouve pas exactement ce que je désire.

Mon souci vient du fait que je veux renommer un onglet en fonction de ce qui aura été écrit dans une cellule.
En faisant des recherches sur le net, je suis arrivé à ces 2 méthodes :

Méthode 1 : La cellule se trouve dans la feuille dont on veut renommer l'onglet.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Name = Range("A1").Value
End Sub


Méthode 2 : La cellule se trouve dans une autre feuille.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Name = ActiveWorkbook.Sheets("Général <>").Range("A1").Value
End Sub


Mon souci est que, pour que l'onglet soit réellement renommé, il faut cliquer sur la feuille en question. Ce qui est logique dans la méthode 1, comme on change en direct la cellule, ce qui l'est beaucoup moins pour la méthode 2. En fait, je voudrais que cela se fasse automatiquement dans la méthode 2, sans avoir besoin de revenir dans la feuille et de devoir cliquer sur celle-ci pour renommer.

Quelq'un aurait-il une solution ?

Merci d'avance
 
Re : renommer un onglet

Voici à quoi ressemble mon fichier (pour la partie qui nous intéresse) :

Ce que je veux, c'est de faire renommer automatiquement les onglets Joueur 01, Joueur 02 , ... , Joueur 10, grâce à la même valeur qui se trouve en B4 sur l'image. Cette valeur en B4 vient de la feuille "Général <>", exactement dans un petit tableau récapitulatif des prénoms des différents joueurs.

Au départ, je renommais manuellement les onglets en question. Depuis, j'utilise le code suivant :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Name = ActiveWorkbook.Sheets("Général <>").Range("AD15").Value
End Sub
(ou AD16, AD17, etc ... pour les autres onglets)

Le souci, est qu'il faut obligatoirement que je clique quelquepart dans chacune des fenêtres pour que le changement du nom de l'onglet se fasse. Au final, j'aimerais que ce changement se fasse automatiquement, sans être obligé de cliquer à chaque fois.
 
Re : renommer un onglet

Bonjour tdsvi,

et pourquoi ne pas renommer tes feuilles directement dans l'évènement Change de la feuille "Général <>" ?
dès que tu change un nom de joueur dans cette feuille, la feuille associée est renommée...
Comme tes feuilles changent de nom régulièrement dans Excel, le mieux est d'utiliser le nom VBA des feuilles...

un essai
 

Pièces jointes

Re : renommer un onglet

C'est exactement ce que je recheche à faire, sauf que moi en fait mon code de la méthode 2 que j'utlise, je l'ai mis dans chacune des feuilles Joueur , Joueur 2, etc ... comme je veux juste renommer les onglets Joueurs.

Je viens de tenter d'adapter ce que tu viens de me montrer à mon classeur, mais ca ne fonctionne pas. Pourrais tu me dire d'où cela provient.

Voici le lien du fichier : Ce lien n'existe plus
 
Re : renommer un onglet

Ce qui veut dire ?

Voila ce que j'ai mis, mais ca marche pas :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("AD15:AD24")) Is Nothing Then
        If Target.Count = 1 Then
            On Error Resume Next
                Select Case Target.Row
                    Case 2
                        Feuil40.Name = Target.Value
                    Case 3
                        Feuil38.Name = Target.Value
                    Case 4
                        Feuil44.Name = Target.Value
                    Case 5
                        Feuil43.Name = Target.Value
                    Case 6
                        Feuil42.Name = Target.Value
                    Case 7
                        Feuil39.Name = Target.Value
                    Case 8
                        Feuil36.Name = Target.Value
                    Case 9
                        Feuil37.Name = Target.Value
                    Case 10
                        Feuil45.Name = Target.Value
                    Case 11
                        Feuil46.Name = Target.Value
                End Select
        End If
    End If
End Sub
 
Dernière modification par un modérateur:
Re : renommer un onglet

Re,

Je suppose donc que tes noms de joueurs sont de la ligne 15 à 24.

essaye comme ça :

Code:
[B]Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("AD15:AD24")) Is Nothing Then
If Target.Count = 1 Then
On Error Resume Next
Select Case Target.Row
Case 15
Feuil40.Name = Target.Value
Case 16
Feuil38.Name = Target.Value
Case 17
Feuil44.Name = Target.Value
Case 18
Feuil43.Name = Target.Value
Case 19
Feuil42.Name = Target.Value
Case 20
Feuil39.Name = Target.Value
Case 21
Feuil36.Name = Target.Value
Case 22
Feuil37.Name = Target.Value
Case 23
Feuil45.Name = Target.Value
Case 24
Feuil46.Name = Target.Value
End Select
End If
End If
End Sub[/B]
 
Re : renommer un onglet

Bonjour,

à essayer :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count > 1 Then End
  If Not Application.Intersect(Target, Range("AD15:AD24")) Is Nothing Then
    For n = 2 To Sheets.Count
      On Error Resume Next
      Sheets(n).Name = Cells(13 + n, "AD")
    Next
  End If
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
258
Réponses
14
Affichages
484
Retour