Création automatique d'une plage nommée

chappyporfaro

XLDnaute Junior
Bonjour le Forum,
Avant de poser mon problème, j'aimerais dire que je n'ai que du respect pour tous ces membres qui prennent de leur temps pour répondre à nos interrogations. :)

Voici mon problème. J'ai un classeur dans lequel j'ajoute des données dans une feuille. Le nombre de ligne n'étant pas toujours le même, je voudrais me créer, via une macro, une plage nommée qui sélectionnerait automatiquement toute la plage contenant une valeur. J'ai fais une tentative en utilisant l'assistant et voici ce que ça donne:

Code:
            Worksheets("Sheet 1").Select
            Range("A1").Select
            Range(Selection, Selection.End(xlToRight)).Select
            Range(Selection, Selection.End(xlDown)).Select
            ActiveWorkbook.Names.Add Name:="TB.DataBrut", RefersToR1C1:= "='Sheet 1'!R1C1:R13665C22"

Il crée ma sélection mais ne l'utilise pas pour la définition de la plage nommée. Et étant donné que je m'y perd dans les références R1C1 je sollicite votre support.

Merci
 

Gorfael

XLDnaute Barbatruc
Re : Création automatique d'une plage nommée

Salut chappyporfaro et le forum
La flemme de nettoyer ton code,alors :
Code:
ActiveWorkbook.Names.Add Name:="TB.DataBrut", RefersToR1C1:= "='Sheet 1'!" & selection..Address(, , xlR1C1)
A+
 

chappyporfaro

XLDnaute Junior
Re : Création automatique d'une plage nommée

Salut chappyporfaro et le forum
La flemme de nettoyer ton code,alors :
Code:
ActiveWorkbook.Names.Add Name:="TB.DataBrut", RefersToR1C1:= "='Sheet 1'!" & selection..Address(, , xlR1C1)
A+


Merci Gorfael! Au moins, je n'ai pas eu la "flemme" de te répondre :D

Mais sérieusement, je suis totalement perdu dans les références R1C1. Je me débrouille avec les références de base mais en regardant ta solution (qui fonctionne très bien) je n'y comprend pas beaucoup de chose.

Pourquoi ne pouvais-je pas utiliser l'objet Range?

Code:
ActiveWorkbook.Names.Add Name:="TB.DataBrut", Range(Selection)

Merci
 

Gorfael

XLDnaute Barbatruc
Re : Création automatique d'une plage nommée

Salut chappyporfaro et le forum
Pourquoi ne pouvais-je pas utiliser l'objet Range ? Parce que Refersto ne comprend pas un objet range, mais un texte.
Si c'est la notation R1C1 qui te pose problème, tu peux utiliser la notation A1 :
RefersToLocal, propriété
Cette propriété renvoie ou définit la formule à laquelle se réfère le nom. La formule est dans la langue de l'utilisateur en notation de type A1 et commence par le signe égal. Type de données String en lecture-écriture.
extrait de l'aide
ce qui donnerait un truc du style :
RefersToLocal:="='Sheet 1'!" & selection.address(1,1)
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 251
Membres
103 497
dernier inscrit
FAHDE