Renommer nom d'onglet suivant cellule

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

Spinzi

XLDnaute Impliqué
Bonjour à tous,

en voyant le titre vous vous êtes dis que je n'avais pas cherché ... FAUX !
Et je n'ai pas trouvé mon bonheur. En effet, je cherche, en premier lieu, à ce qu'une cellule donne son nom à un onglet. Par exemple dans le fichier, j'aimerai que dans l'onglet "W2R Flop20", le nom se génère automatiquement grâce à un champ a remplir en D1 (où l'on renseignerai "W2R" avec une concaténation de "Flop20" dérrière, qui lui doit rester fixe).
Dans un deuxième temps, je voudrais que tous les noms présents dans une matrice délimitée, génère autant d'onglet qu'il y a de noms (les onglets portant le nom de certaines cellules) avec un format spécifique !
Et pour finir, que le nom de l'onglet soit renvoyé en cellule E1 "Affaire" dans les onglets correspondant aux affaires.

C'est pour le même travail qu'ici

Merci d'avance pour votre aide perpetuelle 😀
 

Pièces jointes

Dernière édition:
Re : Renommer nom d'onglet suivant cellule

Bonjour gauguin,

vous parlez de codage en dur et de modifier le code, je ne comprends pas très bien étant débutant en la matière.

De plus, si je souhaite recopier cette VBA, il me suffit juste d'ouvrir un nouveau module dans mon nouveau classeur, c'est bien ça ?

Et pour que le fichier soit parfait, serait il possible que les feuilles se créent dans l'ordre du tableau et que ces feuilles revetissent la couleur bleue ?
De plus, la feuille "..." est-elle indispensable ? je l'avais mise pour qu'elle vous serve de modèle mais si vous ne l'utilisez pas, il paraît que l'on peut cacher ces feuilles ...

Merci pour votre fabuleux travail ! =)

ps : quand je supprime les nom déjà inscrits, et ayant déjà créé les feuilles via la vba, elle ne me supprime pas ces feuilles
 
Dernière édition:
Re : Renommer nom d'onglet suivant cellule

Bonjour,

Voici les étapes :
1/créer un nom : Quand votre classeur est ouvert :
- Appuyez sur Ctrl+F3 puis Nouveau. Dans nom vous écrivez "plage" et dans fait référence à vous écrivez texto : =INDIRECT("$b$3:$b$24") et vous validez.
2 / Vous appuyez sur Alt+F11 puis Ctrl+R (un panneau s'ouvre à gauche) et vous cliquez sur ThisWorbook puis vous collez ce code :
Code:
Option Explicit

Sub Workbook_Open()

Call initVarGlob

End Sub
3 / Dans le panneau de gauche vous cliquez sur "W2R Flop20" et vous collez ça
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Range("plage"), Target) Is Nothing Then
        Dim nomOnglet As String
        Dim nouvelleFeuille As Worksheet
        Dim cellValue As String
        Dim IndexCell As Range
        Dim i As Integer
        cellValue = cellGlob
        nomOnglet = ""
        If Target.Count > 1 Then
            Exit Sub
        Else
            nomOnglet = Target.Value
        End If
        If Len(cellValue) = 0 Then 'si la cellule était vide
            'et qu'in place une valeur dedans
            If Len(nomOnglet) > 0 And (Not FeuilleExiste(nomOnglet)) And testNomFeuille(nomOnglet) Then
                creerFeuille (nomOnglet)
            End If
        Else 'si la cellule n'était pas vide...
            If Len(nomOnglet) = 0 Then '...et qu'on efface le contenu alors
                If FeuilleExiste(cellValue) Then
                    Sheets(cellValue).Delete
                End If
            Else   '...et qu'on place un nouveau contenu
                If cellValue <> nomOnglet Then
                    If FeuilleExiste(cellValue) Then
                        Application.DisplayAlerts = False
                        Sheets(cellValue).Delete 'supprime l'ancienne feuille
                        Application.DisplayAlerts = True
                    End If
                    If (Not FeuilleExiste(nomOnglet)) And testNomFeuille(nomOnglet) Then 'crée la nouvelle
                        creerFeuille (nomOnglet)
                    End If
                End If
            End If
        End If
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count = 1 Then
        cellGlob = Target.Value
        Range("c3") = cellGlob
    Else
        cellGlob = Target(1, Target.Column).Value
        Range("c3") = cellGlob
    End If
End Sub
4 / Faites Fichier / importer et vous importer les fichiers joints (un par un)
5 / Il faut garder la feuille "...", mais cliquez droit dessus (dans Excel) et faites Masquer
6 / Dans le code vous allez voir des références "en dur", c'est ce qu'il faut adapter si vous modifiez le nom de la feuille "W2R Flop20", la plage que l'on a définie plus haut (pour mémoire INDIRECT("$b$3:$b$24")).
 

Pièces jointes

- 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
2
Affichages
590
Réponses
5
Affichages
2 K
Réponses
2
Affichages
3 K
Retour