Défifnir un nom à une plage de cellules

R

Reeaz

Guest
Bonjour,

je cherche à introduire dans une macro que j'ai crée un nom pour une plage de cellules bien définie.
Ansi je pourrai la rapeller par un Range("...") ailleurs.
L'enregistreu de macro me donne ça:

Sub Macro1()
'
Range("E5").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Names.Add Name:="zozo", RefersToR1C1:="=TCDSM!R5C5:R291C5"

End Sub

Cependant, ma plage de cellule est succeptible de varier notamment en longueur et je voudrais introduire qquchose du type :
fin=Range("E5").End(xlDown).row ds la proc à la place de R291C5, car pr le moment le nombre de lignes est figé à 291!.

Si qqun sait comment on modifier cela...
Merci.

Reeaz
 
M

Moa

Guest
Salut Reeaz !

J'ai eu le même problème et j'ai cherché pendant plsuieurs semaines.

J'ai essayé "avec Countif", puis finalement, voilà la solution que j'ai adaptée.

Imaginons que la première colonne et ligne de ton tableau soit C10

Tu fais une macro :

Range("C10").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select

ActiveCell.FormulaR1C1 = "=ROW()"

En fait là tu vas à la fin d ton tableau, tu descends d'une ligne et tu demande à Excel, sur quelle ligne, il se trouve.

Puis tu fais un copier / collage spécial valeur, de cette cellule, dans une autre cellule cachée.

Disons B2.

Puis en B3 ( par exemple), tu écris cette formule :

=(B2-1)

"B2-1", car tu as fais un offset d'une ligne avant.


Et maintenant dans ta macro initiale, tu fais référence à la cellule B3, pour connaitre la fin de ton tableau.

@ +

Moa
 
R

Robert

Guest
Salut Reeaz, Salut le forum,

Essaie avec la variable "lig" qui definie la fin du tableau et lui affecte le nom.


Sub Macro2()
Dim lig As Long
Range("E5").Select
Selection.End(xlDown).Select
lig = ActiveCell.Row
ActiveWorkbook.Names.Add Name:="zozo", RefersToR1C1:="=Feuil1!R5C5:R" & lig & "C5"
End Sub

À plus,

Robert
 

Discussions similaires

Statistiques des forums

Discussions
314 662
Messages
2 111 641
Membres
111 243
dernier inscrit
flo-99010