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

Nommer une plage de cellules au moyen d'une macro

Magic_Doctor

XLDnaute Barbatruc
Bonjour à tous,

Voici mon problème :

Dans une colonne j'ai une série de 300 chiffres qui vont de C6 à C305.
J'ai nommé une plage de cellules de cette colonne, qui va de C6 à C112, "Abcisses".
Je voudrais, au moyen d'une macro, effacer "Abcisses" pour pouvoir renommer une autre plage de la même colonne, qui irait, par exemple, de C6 à C255, toujours "Abcisses".
"Abcisses" est donc le nom de la plage "C6:Cx" où x appartient à [6 , 305].

Dans la cellule G6 se trouve l'adresse de la plage variable de cellules, sous forme :
"C6:C112" (dans le premier cas), puis "C6:C255" (dans le second cas).

J'ai bien tenté de la manière suivante :
Dim Cellule As Range
Set Cellule = Range("G6").Value
ActiveWorkbook.Names("Abcisses").Delete
Range(Cellule.Address).Name = "Abcisses"

Mais ça n'a pas marché…

Un grand merci pour toute aide.
 

JORDAN

XLDnaute Impliqué
Re : Nommer une plage de cellules au moyen d'une macro

bonjour Magic Doctor
pour nommé un plage pa exemple :

Range("A1:B8").Select
ActiveWorkbook.Names.Add Name:="tst", RefersToR1C1:="=Feuil1!R1C1:R8C2"
 

Magic_Doctor

XLDnaute Barbatruc
Re : Nommer une plage de cellules au moyen d'une macro

Merci pour toutes vos propositions, mais aucune ne marche.
La plus intéressante, dans le cadre d'une macro, m'a parue celle de Hasco.
J'ai donc modifié la macro :

Sub Macro1()

Dim Cellule As Range
Set Cellule = Range("G6").Value 'cellule où vient se ranger l'adresse de la plage de cellules, par exemple : "C6:C255"
ActiveWorkbook.Names("Abcisses").Delete 'il faut bien effacer le nom de l'ancienne plage de cellules
Range(Cellule.Address).Name.Add "Abcisse", Cellule

End Sub

Erreur dès la 1ère ligne (Set Cellule = Range("G6").Value).
 
G

Guest

Guest
Re : Nommer une plage de cellules au moyen d'une macro

Re,

Alors c'est:

Sub Macro1()

Code:
Dim Cellule As Range
Set Cellule = Range("G6") 
ActiveWorkbook.Names("Abcisses").Delete 
Range(Cellule.Address).Name.Add "Abcisse", range(Cellule.Text)
 
End Sub

Ou plus court:

Code:
ActiveWorkbook.Names("Abcisses").Delete 
Range(Cellule.Address).Name.Add "Abcisse", range(Range("G6").Text)

Donnera "C6:C255"

A toi de t'assurer que G6 contient bien une adresse interprétable par VBA.

Pour localiser le nom à une seule feuille:

Code:
Range(Cellule.Address).Name.Add "Abcisse", range(Range("G6").Parent.Name & "!" & range("G6").Text)

donnera "Feuil1!C6:C255" (si G6 et sur Feuil1 bien-sûr)


A+
 
Dernière modification par un modérateur:

vbacrumble

XLDnaute Accro
Re : Nommer une plage de cellules au moyen d'une macro

Re tous



Test ok

Code:
Sub test()
Dim Cellule As Range
Set Cellule = Sheets(1).Range("G6")
Cellule = "$C$6:$C$255" '
ActiveWorkbook.Names.Add "Abcisse", RefersTo:="=Feuil1!" & Cellule.Text
End Sub

A+
 

Magic_Doctor

XLDnaute Barbatruc
Re : Nommer une plage de cellules au moyen d'une macro

Yeeees!!!!! J'ai enfin trouvé :

Sub Macro1()

Dim Cellule As Range
Set Cellule = Range("G6")
ActiveWorkbook.Names("Abcisses").Delete
Range(Cellule).Name = "Abcisses"

End Sub

Pour ceux que ça intéresserait...

En tout cas, merci pour vos tentatives.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…