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.
 

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

Statistiques des forums

Discussions
311 731
Messages
2 081 993
Membres
101 856
dernier inscrit
Marina40