Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Bonjour Cisco,

C'est possible par macro, avec quelque chose comme ça:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address(0, 0) = "A1" And Target.Text <> vbNullString Then ActiveSheet.Name = Target.Text
End Sub


A+
 
Re : nommer une feuille avec une cellule

bonjour CISCO Hasco le forum une variante

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
ActiveSheet.Name = Target: End If
End Sub
 
Re : nommer une feuille avec une cellule

Bonjour à tous

Merci à vous deux...

Et une fois que j'ai rentré cette macro (alt F11...), qu'est-ce que j'en fais...?

Est-ce qu'elle s'exécute automatiquement (apparemment, ce n'est pas le cas), est-ce qu'il faut rentrer une formule sur l'onglet de la feuille, est-ce que ...?

Merci pour votre aide et bonne journée
 
Re : nommer une feuille avec une cellule

Bonjour CISCO,

Effectivement excalibur et Hasco t'ont donné la réponse sous forme de macro évènementielle :

Le nom de cet évènement "Worksheet_Change" indique que cette macro va tourner à chaque fois que tu opéreras un changement sur l'onglet en question.

C'est pourquoi dans les 2 méthodes proposées, il y a immédiatement un IF qui restraint la commande à ne s'effectuer que si c'est la cellule A1 qui a été modifiée.

Un tel évènement est à placer dans le code de la feuille sur laquelle tu veux qu'il agisse :

comme te l'a indiqué excalibur :
Lorsque que tu as ouvert la fenêtre VBA (via le menu Outils / Macros / Visual Basic Editor),
si elle n'est pas déjà affichée, affiche l'Explorateur de Projets (via Affichage / Explorateur de Projets),
double-clique dans la partie "Microsoft Excel Objects" sur la feuille sur laquelle tu changeras la cellule A1 : afin d'ouvrir la page de code,
et colle le code que excalibur et Hasco t'ont donné.

Lorque tu places ton curseur n'importe où dans le code de "Worksheet_Change", tu peux voir en haut à gauche de la page de code que tu te trouve sur un évènement de "Worksheet", et dans la liste déroulante en haut à droite, tu visualises tous les autres évènement possibles, dont en grs ceux que tu utilises déjà.

Bonne journée !
 
Re : nommer une feuille avec une cellule

Rebonjour, et merci à vous trois

Ca fonctionne, il ni a pas de problème...

Maintenant, j'aimerai bien pouvoir faire cela sur plusieurs feuilles :

Est-ce que je dois rentrer cette macro sur chaque feuille, ou est-ce je peux la rentrer uniquement sur "Thisworkbook". J'ai essayer cette dernière solution, mais cela ne fonctionne pas. Peut être faut-il faire une modif, rajouter quelque chose...

Il ne faut pas oublier que le nom en A1 de feuil1 ne doit s'écrire que sur l'onglet feuil1, celui en A1 de feuil2 sur l'onglet feuil2...

Merci d'avance
 
Dernière édition:
Re : nommer une feuille avec une cellule

rebonjour le fil salut doude dans Thisworkbook
une variante verifie si existe pas deja
Option Explicit
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
If Selection = "" Then Exit Sub
Dim Ws As Worksheet
For Each Ws In Worksheets
If Ws.Name = Target Then MsgBox "Ce nom de feuille existe déjà !": [a1] = "": Exit Sub
Next Ws
ActiveSheet.Name = Target: [a1] = "": End If
End Sub
 
Dernière édition:
Re : nommer une feuille avec une cellule

Bonjour a tous,
cette discussion correspond tout a fait a mon probleme mais morsque je copie la solution de excalibur cela ne fonctionne pas!!! comment doit on faire pour que cette macro demarre ?
merci d avance de votre aide .
 
Re : nommer une feuille avec une cellule

Bonjour


Avec le code d'Hasco( salute 😉 ) que j'ai "varianté", cela fonctionne très bien

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range:         Set r = Target
Dim s As Worksheet:     Set s = ActiveSheet
s.Name = IIf((r.Address = "$A$1") + (Not IsNull(r.Text)), _
        r.Text, vbNullString)
End Sub
 
Re : nommer une feuille avec une cellule

bonjour stapple1600,
merci d avoir repondu ,j ai essaye ta solution que j ai copié collé dans la page correspondant a l onglet que je souhaitai renommer (worksheet change)mais une fois cette manip faite et adapte a la cellule que je souhaite cible que dois je faire pour que mon onglet change de nom a l identique de cette satané cellule. mais connaissance sur les macros sont naissantes!!!
merci d avance.
 
Re : nommer une feuille avec une cellule

Bonjour a tous,
j ai essaye la macro de staple1600 qui fonctionne en effet tres bien par contre j ai une question:
la cellule J2 qui me nomme l onglet varie en fonction d une cellule situe sur une autre feuille (J2 varie en fonction de =Feuil13!A6) et dans ce cas la l onglet ne se trouve pas renomme car je n agis pas en faisant entrée sur la cellule J2 directement.
Auriez vous une solution a mon probleme SVP ?
merci a tous
 
Re : nommer une feuille avec une cellule

re,
voici le fruit de mes essais infructueux pourriez vous me dire pourquoi ca ne marche pas?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range: Set r = Target
Dim s As Worksheet: Set s = ActiveSheet
s.Name = IIf((r.Address = "feuil13!c2") + (Not IsNull(r.Text)), _
r.Text, vbNullString)
End Sub
 
Re : nommer une feuille avec une cellule

Bonjour Catmiky,

Pas sûr d'avoir tout compris, mais apparement il faut changer le nom lorsque la feuille est calculée.

A mettre dans le module de la feuille concernée
Code:
Private Sub Worksheet_Calculate()
    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)
    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
Traduction:
Si NomDeLaFeuille est différent de J2 et que J2 n'est pas nulle alors changer le nom de la feuille en J2

ainsi que j2 soit le résultat d'une fonction ou d'une écriture manuelle la feuille changera de nom

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

Bonjour Hasco,
Merci beaucoup de t etre penché sur la question et je te tire mon chapeau ca marche presque comme je le souhaite il ne manque plus grand chose !!!
il n y a plus qu un petit detail qui me fait planter la macro c est que lorsque la feuille est vierge ( pas d onglet nomme ) tout fonctionne lorsque je tape sur ma feuille recap; mais si sur ma feuille recap je reinterviens dessus la il me dit qu un onglet porte deja ce nom.
Y a t il un moyen qu il renomme quand meme ?
il te manque peut etre l element suivant: les onglets a renommer sont les 12 mois par contre le mois de janvier n est pas forcement feuille 1 et c est justement ma feuille 13(recap) qui le determine.
encore une fois merci beaucoup.
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…