Nom de l'onglet en fonction du contenu d'une cellule

Bonjour

Problème simple je crois mais queje n'arrive pas à solutionner.

Comment puis-je procéder pour que les onglets d'une feuille prennent le nom du contenu d'une cellule?

Je précise que je suis une buse en VBA si cela est obligatoire et que je n'arrive pas à les faire fonctionner.

Si vous donnez une solution, précisez si cela est pour version Français ou English (car j'ai les 2 versions)

Merci pour votre aide,

PJ

Bonjour le forum,

Avec les coordonnées de la ou des cellules concernées, si celles-ci sont variables ou non (position et/ou valeur) ce serait plus simple pour vous apporter une solution mieux adaptée.

A plus

Bonjour

En fait j'ai trouvé par hasard sur le forum ce qui correspondrait, mais je n'arrive pas à la mettre en oeuvre car je suis comme je le disais une buse en VBA..

https://forum.excel-pratique.com/excel/macro-pour-inserer-le-contenu-d-une-cellule-dans-l-onglet-t31615.html

Pouvez-vous me donner un "pas à pas" pour que cela fonctionne?

Cordialement

PJ

Bonjour,

avec le code de cette même personne :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Nom As String

  'Cette ligne permet d'activer la macro que lorsque la cellule J2 est modifié
  'Tu peux donc mofifier les coordonnées de cette cellule en mettant A2 ou C8 peu importe
  If Not Intersect(Range("J2"), Target) Is Nothing And Target.Count = 1 Then

  'Si ta cellule est vide alors on quitte la macro sinon ...
    If Target = "" Then Exit Sub

    'Tous les lignes qui suivent sont là pour remplacer les caractères spéciaux  par des "_"
    Nom = Target
    Nom = Replace( _
          Replace( _
          Replace( _
          Replace( _
          Replace( _
          Replace( _
          Replace( _
          Replace(Nom, "&", "_"), _
                                   ":", "_"), _
                                   "/", "_"), _
                                   "\", "_"), _
                                   "?", "_"), _
                                   "*", "_"), _
                                   "[", "_"), _
                                   "]", "_")

    'cette partie previent lorsqu'un onglet possède déjà le nom voulu
    Nom = Left(Nom, Application.Min(31, Len(Nom)))
    If FeuilleExiste(Nom) = True Then
      If Sheets(Nom).Index <> Sh.Index Then
        MsgBox "Une feuille avec le même nom existe déjà"
        Target = ""
        Exit Sub
      End If
    End If
    Sh.Name = Nom
  End If
End Sub

Function FeuilleExiste(Nom As String) As Boolean
  On Error Resume Next
  FeuilleExiste = Sheets(Nom).Name <> ""
  On Error GoTo 0
End Function

A insérer dans le module "ThisWorkbook" sous VBA dan l'onglet "Développeur" d'excel.

Si besoin,

A plus

Oui cela je l'avais compris, mais je ne sais pas mettre en oeuvre?

Sous Developer, j'ai ouvert Visual Basic

La page MVBA for application s'ouvre

J'ai collé le texte

Et là je suis perdu

Que dois je faire pour "sauvegarder" et que la macro fonctionne automatiquement à l'ouverture du fichier?

Merci

Vous avez double-cliquez sur "ThisWorkbook" sur la gauche de MVBA et collez la macro.

Une fois cela fait, la macro est active. Vous pouvez fermer VBA et à partir du moment où la valeur de la cellule, que vous avez renseigné en début de code, change, le nom de l'onglet va changer tout simplement.

Comme sur le fichier de l'autre discussion.

Ben je ne comprends pas parce que cela ne marche pas... ??

Fichier joint

Il fallait bien lire les instructions !

Vous avez créer un nouveau module or comme je l'ai dit, il faut double-cliquer sur "ThisWorkbook" sur la gauche de MVBA et coller la macro.

A partir de là, plus de problème

20le-boulet.xlsm (65.24 Ko)

Merci mais le boulet est paumé...

Pouvez vous jeter un oeil à ce fichier

Je vois, un petit Ctrl+R pour ouvrir l'explorateur de projets et le problème est réglé normalement.

13le-boulet.xlsm (126.99 Ko)

J'ai fait un CTRL+R et je vois les projets.. mais

Je n'arrive pas à supprimer le premier (sheet2)

et si j'informe ThisWorkBook et que je quitte, rien ne se passe..

Peut-il y avoir une expliation en Excel english et version Français?

Merci et désolé pour le boulet

Il ne faut pas supprimer les Sheets.

Regardez dans MVBA du fichier ci-joint, j'ai simplement collé la macro dans "ThisWorkbook".

Retourner sur Excel, modifier votre cellule C1 et ca fonctionne.

Super le boulet a fini par comprendre

Merci bcp !!

Rechercher des sujets similaires à "nom onglet fonction contenu"