OVH Cloud OVH Cloud

Macro définir un nom pour une plage donnée

4 réponses
Avatar
moonspy
Bonjour,

J'ai créé la macro suivante dont le but est de définir un nom pour une plage sélectionnée de taille variable dans une feuille nommée Liste.

Sub NommerPlage()
'
' NommerPlage Macro
'
' Touche de raccourci du clavier: Ctrl+m
'
Range("D5").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
If TypeName(Selection) = "Range" Then _
ActiveWorkbook.Names.Add Name:="BDD", RefersTo:=Selection
ActiveWorkbook.Names("BDD").Comment = ""
End Sub

Le nom BDD est bien créé dans le gestionnaire de noms
sauf que les références sont sous la forme =Liste!'L5C4':'L7C5' et non pas =Liste!'$D$5:$E$7'. Et de ce fait, je ne vois pas le nom dans Zone nom de ma feuille de calcul. Comment faire ?

Merci pour votre aide

Gilles

4 réponses

Avatar
MichD
Bonjour,

(tu adaptes le nom de la feuille et de la plage de cellules)

Voici un exemple pour créer une plage de la colonne A1:Ax de la feuil1
ayant une étendue au niveau de la feuille, pour utiliser ce nom dans
les autres feuilles à part de la Feuil1, on doit faire précéder ce nom du
nom
de la feuille où il a été créé : = Feuil1!BDC

'------------------------------
Sub test()
With Worksheets("Feuil1")
.Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row).Name = .Name &
"!BDC"
End With
End Sub
'------------------------------

Si on veut créer un nom qui sera accessible pour tout le classeur :
'------------------------------
Sub test()
With Worksheets("Feuil1")
.Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row).Name = "!BDC"
End With
End Sub
'------------------------------




MichD
---------------------------------------------------------------
"moonspy" a écrit dans le message de groupe de discussion :


Bonjour,

J'ai créé la macro suivante dont le but est de définir un nom pour une plage
sélectionnée de taille variable dans une feuille nommée Liste.

Sub NommerPlage()
'
' NommerPlage Macro
'
' Touche de raccourci du clavier: Ctrl+m
'
Range("D5").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
If TypeName(Selection) = "Range" Then _
ActiveWorkbook.Names.Add Name:="BDD", RefersTo:=Selection
ActiveWorkbook.Names("BDD").Comment = ""
End Sub

Le nom BDD est bien créé dans le gestionnaire de noms
sauf que les références sont sous la forme =Liste!'L5C4':'L7C5' et non pas
=Liste!'$D$5:$E$7'. Et de ce fait, je ne vois pas le nom dans Zone nom de ma
feuille de calcul. Comment faire ?

Merci pour votre aide

Gilles
Avatar
Jacquouille
Bonjour
Quand la macro a tourné une fois, dans menu, Nom, définir, ta plage y
est-elle renseignée? Si oui, sous quelle forme?
Je crains qu'il soit malsain de changer de système d'adresse de cellule
(passer de L1C1 à A1) en cours de route.



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"moonspy" a écrit dans le message de groupe de discussion :


Bonjour,

J'ai créé la macro suivante dont le but est de définir un nom pour une plage
sélectionnée de taille variable dans une feuille nommée Liste.

Sub NommerPlage()
'
' NommerPlage Macro
'
' Touche de raccourci du clavier: Ctrl+m
'
Range("D5").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
If TypeName(Selection) = "Range" Then _
ActiveWorkbook.Names.Add Name:="BDD", RefersTo:=Selection
ActiveWorkbook.Names("BDD").Comment = ""
End Sub

Le nom BDD est bien créé dans le gestionnaire de noms
sauf que les références sont sous la forme =Liste!'L5C4':'L7C5' et non pas
=Liste!'$D$5:$E$7'. Et de ce fait, je ne vois pas le nom dans Zone nom de ma
feuille de calcul. Comment faire ?

Merci pour votre aide

Gilles
Avatar
Jacquouille
Bonjour Denis
Un nom créé n'est pas appelable à partir de tous les onglets, sans
mentionner la feuille d'origine lors de la création du nom?



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
k3ps62$i70$

Bonjour,

(tu adaptes le nom de la feuille et de la plage de cellules)

Voici un exemple pour créer une plage de la colonne A1:Ax de la feuil1
ayant une étendue au niveau de la feuille, pour utiliser ce nom dans
les autres feuilles à part de la Feuil1, on doit faire précéder ce nom du
nom
de la feuille où il a été créé : = Feuil1!BDC

'------------------------------
Sub test()
With Worksheets("Feuil1")
.Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row).Name = .Name &
"!BDC"
End With
End Sub
'------------------------------

Si on veut créer un nom qui sera accessible pour tout le classeur :
'------------------------------
Sub test()
With Worksheets("Feuil1")
.Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row).Name = "!BDC"
End With
End Sub
'------------------------------




MichD
---------------------------------------------------------------
"moonspy" a écrit dans le message de groupe de discussion :


Bonjour,

J'ai créé la macro suivante dont le but est de définir un nom pour une plage
sélectionnée de taille variable dans une feuille nommée Liste.

Sub NommerPlage()
'
' NommerPlage Macro
'
' Touche de raccourci du clavier: Ctrl+m
'
Range("D5").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
If TypeName(Selection) = "Range" Then _
ActiveWorkbook.Names.Add Name:="BDD", RefersTo:=Selection
ActiveWorkbook.Names("BDD").Comment = ""
End Sub

Le nom BDD est bien créé dans le gestionnaire de noms
sauf que les références sont sous la forme =Liste!'L5C4':'L7C5' et non pas
=Liste!'$D$5:$E$7'. Et de ce fait, je ne vois pas le nom dans Zone nom de ma
feuille de calcul. Comment faire ?

Merci pour votre aide

Gilles
Avatar
MichD
Correction apportée : Il n'y a pas de point d'exclamation devant le nom.


Si on veut créer un nom qui sera accessible pour tout le classeur :
'------------------------------
Sub test()
With Worksheets("Feuil1")
.Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row).Name = "BDC"
End With
End Sub
'------------------------------


MichD
---------------------------------------------------------------