RE-nommer une plage déjà nommée

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 !

supercrapaud

XLDnaute Occasionnel
Bonjour à vous tous !

Voici mon problème. Après avoir cherché parmi les 10000 réponses que compte le forum sur les "range" et "plage", je viens vers vous...

Je souhaite simplement savoir comment il était possible de changer par macro le nom d'une plage déjà nommée. Je cherche à faire quelque chose dans le style :
Sheets(feuil1).replace (what:=range("plagededonnées1"), replacement:=range("plagededonnées2").

En prenant en considération le fait qu'il s'agisse toujours de la même plage, à la même adresse, seul le nom de cette plage change. En vous remerciant par avance !
 
Re : RE-nommer une plage déjà nommée

Bonjour supercrapaud,
Si j'ai bien compris, je vous fait une proposition.
Code:
Sub Change_Nom()
    Sheets("Feuil1").Range("C4:E21").Select' mettre la plage cherchée
    Toto = Selection.Name.Name
    ActiveWorkbook.Names(Toto).Delete
    ActiveWorkbook.Names.Add Name:="Plg3", RefersToR1C1:="=Feuil1!R4C3:R21C5" ' remettre l'adresse de la plage
End Sub
Je pense qu'il doit y avoir mieux (par exemple éviter le "select", mais je ne trouve pas....
Cordialement
 
Re : RE-nommer une plage déjà nommée

Bonjour,

Je vous remercie de votre réponse mais il n'y a pas plus simple, faire juste un changement de nom comme on peut le faire avec le egstionnaire de nom mais sans avoir toutes les modifs ? En tout cas merci !
 
Re : RE-nommer une plage déjà nommée

bonjour à toi aussi

Comme je viens de le dire, je veux juste changer le nom d'une plage comme on peut le faire quand on utilise le gestionnaire de nom sous Excel. Juste modifier le nom de la plage, rien d'autre mais si possible sans avoir à rédiger 4 ou 5 lignes de codes à chaque fois (si c'est possible bien sûr).
 
Re : RE-nommer une plage déjà nommée

Re,

donc, si j'ai bien compris, tu veux que la plage correspondante au nom "toto" de ton classeur s'appelle "titi" et plus "toto" ?
si tu as des formules qui font référence à "toto", elles ne fonctionneront plus...
 
Re : RE-nommer une plage déjà nommée

Oui tu as bien compris ce que je souhaite faire. J'ai trouvé une ligne de code qui marche bien :
Sub copy ()
ActiveWorkbook.names("toto") .name("titi")
End sub

Cela fait juste l'interversion sans rien toucher d'autre (testez-le pour voir). Je vous remercie tous de vous être penchés sur ce cas car je crois avoir trouvé l'aboutissement de ce que je cherche. Cela servira aux autres j'espère !
Encore merci !
 
Re : RE-nommer une plage déjà nommée

Oui tu as raison j'ai fait une erreur de recopie. voilà le bon code :
Sub copy()
ActiveWorkbook.Names("toto").Name = "titi" 'pas de parenthèse au nouveau nom, juste les guillemets
End Sub

Là ça devrait marcher !
 
Re : RE-nommer une plage déjà nommée

Bonjour à tous


un exemple qui fonctionne en ma maison avec Excel 2000

Code:
Sub a()
Dim r As Range
Set r = Range("A1:A10"): r.Name = "toto": r.Name = "titi"
ActiveWorkbook.Names("toto").Delete
End Sub
EDITION: la solution de supercrapaud fonctionne aussi en ma maison
(j'avais pas encore testé) 😱

Ceci dit je partage le interrogations d'Efgé (que je salue)
 
Dernière édition:
Re : RE-nommer une plage déjà nommée

Re supercrapaud, Bonsoir tototiti2008, Bonsoir Staple1600,
En dehors de dire merci à supercrapaud pour avoir posté la solution, il y a quand même quelque chose que je ne comprend pas dans ce fil:
Si on connait le nom d'origine de la plage pourquoi le changer en cours de macro?
Si on ne connait pas le nom d'origine la ligne de supercrapaud n'est pas applicable...
C'était juste comme ça, pour essayer de comprendre 😎.
Cordialement

EDIT:
Puisque de chez moi je peux éditer mes messages, j'en profite...
Pour répondre aux pré requis de base
En prenant en considération le fait qu'il s'agisse toujours de la même plage, à la même adresse, seul le nom de cette plage change.
Sans connaitre le nom de la plage mais son "range" je propose ceci en m'appuyant sur me code de Staple1600:
Code:
Sub renome_plage2()
Set r = Range("A1:A10"): Toto = r.Name.Name: r.Name.Name = "Ma_nouvelle_plage"
End Sub
Cordialement
 
Dernière édition:
- 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
879
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
615
Réponses
27
Affichages
2 K
A
Réponses
11
Affichages
2 K
A
C
  • Question Question
Réponses
8
Affichages
1 K
clarouche33
C
B
Réponses
2
Affichages
1 K
Retour