nommer une feuille avec une cellule

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

CISCO

XLDnaute Barbatruc
Bonjour à tous

Quelle drole d'idée...

Est-ce qu'il est possible de faire nommer, automatiquement bien sûr, une feuille, avec le contenu d'une cellule ?

Je m'explique...

Sur une feuille, vous avez une série de calculs, de noms, de dates...
En A1 par exemple, vous écrivez un nom, et hop, automatiquement la feuille prend comme nom le contenu de cette cellule A1...

Merci d'avance.
 
Re : nommer une feuille avec une cellule

re catmicky

Je ne comprends pas tout alors:
joint sur le forum un fichier xls ou zip <48ko avec des explications claires et détaillées de ce que tu veux et fais, sinon on va tourner en rond.

Sinon un pis aller:

Code:
Private Sub Worksheet_Calculate()
on error Resume Next
If Me.Name <> Range("J2") And Not IsNull(Range("J2").Text) Then Me.Name = Range("J2")
End Sub
 
 
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Address <> "$J$2" Or IsNumeric(Target.Value) Then Exit Sub
If Me.Name <> Range("J2") And Not IsNull(Range("J2").Text) Then Me.Name = Range("J2")
End Sub

A+
 
Dernière modification par un modérateur:
Re : nommer une feuille avec une cellule

Bonjour à tous

J'ai égaré (ou effacé) le fichier que j'avais fait avec vos divers conseils donnés ci-dessus.

Présentement, en reprenant la macro proposée par excalibur (post 8 ci-dessus), je n'obtiens pas exactement ce que je veux :
* Après avoir écri un nom en B6, je voudrai que celui-ci s'écrive automatiquement sur l'onglet, dès qu'on a fait entrer. En pratique, cela ne fonctionne que si on resélectionne la cellule B6.
*Si un peu plus tard, je resélectionne la cellule B6, excel m'envoie le message "Ce nom de feuille existe déjà !" puis efface le nom en B6. En pratique, cela ne devrait se faire que si on vient juste de modifier ce nom (et bien sûr si le nom existe déja).

Il faut que la macro fonctionne aussi sur le second onglet, sur le troisième...

J'ai essayé de retrouver mon ancien fichier, sans succès, de modifier la macro proposée par excalibur, sans succès non plus (pourtant, elle n'est pas très longue !).

Pourriez vous m'aider et m'expliquer un peu la signification de chaque ligne de la macro ?

@ plus
 

Pièces jointes

Re : nommer une feuille avec une cellule

Bonjour CISCO, le fil,

Il me semble qu'on se cassait bien la tête en 2008.

Vois ces macros, il n'y a pas grand'chose à comprendre :

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
'si A1 est renseigné manuellement
On Error Resume Next
Sh.Name = Sh.[A1]
End Sub

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
'si A1 contient une formule
On Error Resume Next
Sh.Name = Sh.[A1]
End Sub
Edit : j'oubliais de rappeler que ces macros sont à placer dans ThisWorkbook.

A+
 
Dernière édition:
Re : nommer une feuille avec une cellule

Bonsoir Cisco😀, Job😀

Où l'on voit tout l'art de tourner en rond😀.
C'est ce que proposais Excalibur au #post 3 , moi-même dès le post #2, écrit différement, mais la même chose. C'est après que c'est parti en sucette...😀

A+++
 
Re : nommer une feuille avec une cellule

Bonjour CISCO, salut Hasco,

Si un message d'erreur est indispensable :

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
'si A1 est renseigné manuellement
On Error Resume Next
Sh.Name = Sh.[A1]
If Err And Sh.[A1] <> "" Then _
  MsgBox "La feuille '" & Sh.Name & "' ne peut être nommée '" & Sh.[A1] & "'...": _
    Application.Undo 'annule la modification
End Sub

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
'si A1 contient une formule
On Error Resume Next
Sh.Name = Sh.[A1]
If Err And Sh.[A1] <> "" Then _
  MsgBox "La feuille '" & Sh.Name & "' ne peut être nommée '" & Sh.[A1] & "'...": _
    Application.Undo 'annule la modification
End Sub
Edit : bien noter que si l'on force en A1 une valeur erronée (par exemple en désactivant les macros), il y aura ensuite problème...

Il faudra alors sortir d'Excel par Ctrl+Alt+Suppr...

A+
 
Dernière édition:
Re : nommer une feuille avec une cellule

Bonjour à tous, bonjour Job75 et Hasco

Job75, c'est bon, j'y arrive avec tes deux propositions. De plus, ces macros sont vraiment faciles à comprendre 🙂. Merci.

@ hasco. Tu as raison, mais, malheureusement, je n'arrive pas à adapter les macros que tu cites à mon fichier réel.

@ plus et bon W.E. à tous
 
Re : nommer une feuille avec une cellule

Rebonjour

Encore une petite question : Les macros proposées par Job75 fonctionnent bien.
Toutefois, si on insère des lignes au dessus de A1, ou des colonnes à gauche de la colonne 1, cela ne fonctionne plus puisque la cellule où l'on écrit le nom n'est plus A1. Est-ce que vous auriez une solution pour résoudre ce petit problème. Autrement dit, que doit on mettre à la place sh.[A1] (un nom par exemple ?) pour que ces insertions ne posent pas de problème ?

Merci d'avance.

@ plus
 
Re : nommer une feuille avec une cellule

Bonsoir

Oui, Hasco, j'ai essayé avec le nom "mot", en le définissant avec =!A1, et en écrivant dans la macro sh.[mot], mais cela ne fonctionne pas. Peut être n'est-ce qu'une erreur de syntaxe, ou peut être faut-il utiliser une méthode complètement différente. Je ne sais.

@ plus
 
Re : nommer une feuille avec une cellule

Bonsoir CISCO, Hasco,

Vois le fichier joint avec mes macros précédentes..

J'ai ajouté celle-ci :

Code:
Private Sub Workbook_Open()
'définit le nom cible pour chaque feuille
Dim w As Worksheet
For Each w In Worksheets
  On Error Resume Next
  Set w = w.Names("cible").Parent
  'si le nom existe on n'y touche pas
  If Err Then w.Names.Add "cible", w.[B6]
  'facultatif, si on veut masquer le nom
  'w.Names("cible").Visible = False
Next
End Sub
Normalement elle ne sert qu'une fois : pour définir dans chaque feuille le nom "cible".

Note que ce nom peut être masqué.

Ensuite tu pourras ajouter des lignes ou des colonnes, no problem.

A+
 

Pièces jointes

Re : nommer une feuille avec une cellule

Bonsoir à tous, bonsoir Hasco, bonsoir Job75.

Vos macros fonctionnent, mais cela me force à définir le mot dans chaque feuillet (sauf si un simple copier-coller de la page entière vers une autre page transfert aussi le mot automatiquement). Une trentaine de pages au total, avec des ajouts possibles à tout moment. Pas très pratique. Le but est de faire un fichier le plus pratique possible pour l'utilisateur final, sans qu'il ai à définir de nouveaux noms ou à aller modifier la macro.

J'avais espéré pouvoir faire avec un seul mot défini automatiquement sur toutes les feuilles (cf. le fil https://www.excel-downloads.com/threads/meme-nom-dans-differentes-feuilles.177958/, par exemple la proposition toute simple de Monique à la fin).

Merci pour votre aide.

@ plus
 
Dernière édition:
Re : nommer une feuille avec une cellule

re,

Je viens de faire un test sur un classeur vierge et cela fonctionne pour peu que l'on utilise la forme w.[Mot] au lieu de Range("Mot") , le code ci-dessous m'a bien renommé les feuilles avec le bon nom mis en cellule 'Mot' de chaque feuille. Le nom 'Mot' est valable sur toute nouvelle feuille.

Code:
    Dim w As Worksheet
    For Each w In ThisWorkbook.Worksheets
        w.Name = w.[Mot]
    Next

A+

[Edition] Classeur plus complet ci-joint avec un code dans ThisworkBook, tu peux ajouter des feuilles et changer la valeur de la cellule 'Mot' de la nouvelle feuille. Si le nom n'existe pas la feuille prendra ce nom sinon, on prévient l'utilisateur et le nom original ne change pas.
A+
 
Dernière modification par un modérateur:
Re : nommer une feuille avec une cellule

Bonsoir

Je te remercie Hasco pour cette nouvelle proposition..

La macro fait effectivement ce que tu écris... , malheureusement, uniquement tant qu'on a pas rajouté de ligne au dessus, ou de colonne à gauche de C3. Grrrr.

@ plus
 
Re : nommer une feuille avec une cellule

Re,

Oui j'avais oublié entre temps cette contrainte, désolé. Dans ton fichier exemple du post #17 la cellule en question est étiquetée: 'Nom:'. Est-ce un élément fiable, constant sur toutes les feuilles, présentes et futures? On pourrait peut-être simplement s'appuyer là-dessus?

A voir.

Bonne soirée.
 
- 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
3
Affichages
147
Retour