Nommer une cellule en fonction du contenu d'une autre cellule

catdog

XLDnaute Junior
Bonsoir à tous,

J'ai fait plusieurs tentatives afin de trouver une solution à mon problème, mais rien y fait.

Je souhaite appliquer une macro (avec 3 variantes) sur plusieurs cellules pour utiliser sur plusieurs feuilles afin d'aller chercher la valeur contenu dans une cellule et utiliser cette copie pour attribuer un nom à la cellule sur laquelle je me trouve.

Autrement dit, je suis sur n'importe quelle cellule, et je lui demande d'aller me prendre la valeur contenue dans C10 pour en faire le nom de la cellule sur laquelle je me trouve.

En enregistrant, je me retrouve avec la valeur "en dur" je me retrouve avec :
Selection.Copy
Range("C10:G10").Select
Application.CutCopyMode = False
ActiveWorkbook.Names.Add Name:="tit_CCS", RefersToR1C1:="=CCS!R10C3"​

Que j'ai voulu "améliorer" en :

Range("c11").Copy
Application.CutCopyMode = True
ActiveWorkbook.Names.Add Name.Paste, RefersToLocal​

Mais la dernière ligne ne passe pas du tout. Mais bon, je débute, et j'avance à tâtons...

Pour moi, le nom sera différent à chaque feuille ("tit_" correspond au titre de la feuille dont l'onglet est syn).

Merci d'avance pour vos idées.

Bonne soirée à tous
 

Dranreb

XLDnaute Barbatruc
Re : Nommer une cellule en fonction du contenu d'une autre cellule

Pourquoi n'essayez vous pas :
VB:
ActiveSheet.Names.Add Name:=ActiveSheet.[C10].Value, RefersTo:="=" & Selection.Address
Remarque: doit être préfixé du nom de la feuille éventuellement entre apostrophes suivi d'un point d'exclamation pour être utilisé dans une formule d'une autre feuille.
 
Dernière édition:

catdog

XLDnaute Junior
Re : Nommer une cellule en fonction du contenu d'une autre cellule

Bonsoir,

Merci beaucoup pour votre aide...

Je teste dès demain et je vous dis si ça marche.

Je reste ouvert à toutes les autres options qui pourraient m'être utiles, cela va sans dire.

Bonne fin de soirée à tous,
 

catdog

XLDnaute Junior
Re : Nommer une cellule en fonction du contenu d'une autre cellule

Bonjour Dranreb,

Pourriez-vous m'expliquer ce que fait RefersTo:="=" & selection.address ?

Car je souhaite que la macro s'exécute dans la cellule où je me situe. Il me semble qu'il existe une syntaxe dans ces cas-là, non ?

Sinon, après avoir vu votre bas de message, je vous joins un fichier à titre d'exemple.

Dans mon exemple, il y a 2 feuilles. Dans le concret, le nombre de feuilles est variable.
Je dois donner un nom à 3 cellules pour chaque feuille mais - car il y a un mais - pour les cellules "statut" & "viseur", il peut y avoir des différences d'une feuille à l'autre quant à leur positionnement. En général, la cellule nommée "titre" ne devrait pas bouger, mais il pourrait y avoir des exceptions et se trouver en D10 ou E10 au lieu de C10.

Ajout : j'oubliais, les cellules où trouver les valeurs à copier seront toujours dans C11, D11, et E11.
Mais pour moi, cela correspond à 3 macros différentes (les 3 variantes que j'imaginais dans mon premier post).

Voilà, je pense avoir fait le tour de mon problème.

Merci encore pour votre aide...
 

Pièces jointes

  • test_appliquer_nom_cell_vba.xlsm
    10.2 KB · Affichages: 29
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Nommer une cellule en fonction du contenu d'une autre cellule

Bonjour.
Non, ben en fait je crois que je ne comprends rien du tout à ce que vous voulez.
Autrement dit, je suis sur n'importe quelle cellule, et je lui demande d'aller me prendre la valeur contenue dans C10 pour en faire le nom de la cellule sur laquelle je me trouve.
Je croyais donc que vous vouliez qu'à l'exécution la sélection reçoive comme nom le texte inscrit en C10.
Après vous aviez parlé d'un nom de feuille pour les distinguer, alors je vous ai dit qu'il existait un autre moyen pour ça, en allant le mettre dans la collection Names de l'objet Worksheet au lieu de celle de l'objet Workbook, et que dans ce cas, pour le nom "tit" il s'invoquera dans une autre feuille par "Feuil1!tit", or je vois toujours un "tit_Feuil1" qui me suggère que vous non plus vous ne comprenez rien à ce que je dis.
 
Dernière édition:

catdog

XLDnaute Junior
Re : Nommer une cellule en fonction du contenu d'une autre cellule

Euh... en fait, j'ai peut-être mis une information en trop.

Le nom donné à la cellule contient le nom de l'onglet, mais il est déterminé en amont. Il était donc superflu de ma part de l'indiquer.

Quoi qu'il en soit, la valeur de C11 devra être attribué à la cellule sur laquelle je me trouverai au moment de lancer la macro.
Mais, comme je le disais initialement, au moment d'enregistrer ma macro, il n'a pas pris en compte l'opération de coller la valeur, mais il l'a inscrite en dur.

Est-ce plus clair ?

Merci en tout cas pour le temps que vous m'accordez...


PS. : comme je l'ai dit, je débute en VBA... je tâtonne et je ne suis pas encore rompu au vocabulaire.
 

Dranreb

XLDnaute Barbatruc
Re : Nommer une cellule en fonction du contenu d'une autre cellule

Je suppose que vous vouliez vous bien dire
Quoi qu'il en soit, la valeur de C11 devra être attribué comme nom à la cellule sur laquelle je me trouverai au moment de lancer la macro.
J'ai donc tapé "Toto" en C11, écrit ça dans un module :
VB:
Option Explicit

Sub Test()
ActiveSheet.Names.Add Name:=ActiveSheet.[C11].Value, RefersTo:="=" & Selection.Address
End Sub
…sélectionné A1 et exécuté Test,
Ça m'a bien entrainé la création d'un nom "Toto" dans la feuille ayant pour référence "=Feuil1!$A$1".
Ça vous va ?
Remarque: Ça correspond bien aussi à un nom "Feuil1!Toto" dans le classeur avec cette même référence.
 
Dernière édition:

catdog

XLDnaute Junior
Re : Nommer une cellule en fonction du contenu d'une autre cellule

Bonsoir,

Bon, alors ce que j'ai pu tester est vraiment top à un détail près...

Le nom n'est appliqué que dans la zone de la feuille active.

J'ai omis de préciser que j'utiliserai le nom donné dans un autre onglet...

Merci d'avance pour votre aide,

Olivier.

C'est bon, j'ai pu modifier en remplaçant le premier Active.sheet par un active.workbook.
Bonne soirée à tous​
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Nommer une cellule en fonction du contenu d'une autre cellule

C'est faux: "Feuil1!Toto" est connu dans tout le classeur. Seul "Toto" tout seul n'est connu que dans les feuilles qui ont un "Toto".
Il vaut quand même mieux ça que "Toto_Feuil1", non ? Puisque il existe déjà cette syntaxe qui est très précisément prévue exactement pour ça: pour que chaque feuille puisse avoir son propre "Toto", mais qui est quand même connu dans tout le classeur à condition de préciser la feuille devant !
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 473
Membres
103 553
dernier inscrit
jhnm