Insertion "Nom->Définir" en macro

F

Fanfan68

Guest
Bonjour à tous,

Si à l'aide de l'enregistreur de macro, je sélectionne une plage puis je vais dans 'Insertion -> Nom -> Définir' et que je défini un Nom pour cette plage, le résultat sera quelque chose comme ça :

ActiveWorkbook.Names.Add Name:='classement', RefersToR1C1:= _
'=ListeJoueurs!R2C15:R191C16'


Il y aurait-il quelqu'un qui pourrait me dire, si cela est possible, de modifier le code généré automatiquement par quelque chose comme ça :

aa = Range('O65536').End(xlUp).Row
bb = Range('P65536').End(xlUp).Row
ActiveWorkbook.Names.Add Name:='classement', RefersToR1C1:= _
'=ListeJoueurs!R2 & aa:R & bb & C16'


Merci pour votre aide
 

Robert

XLDnaute Barbatruc
Re:Insertion \"Nom->Définir\" en macro

Bonjour Fanfan, bonjour le forum,

Difficile de te répondre car le système R1C1 fait référence à une cellule de départ que tu ne nous donnes pas...

Si ta plage est O2: P (dernière ligne éditée de la colonne P) tu peux faire :


With Sheets('ListeJoueurs')
.Range('O2: P' & .Range('P65536').End(xlUp).Row).Name = 'classement'
End With

Édition :
Pour éviter d'avoir un smiley, j'ai mis un espace en plus entre : et P. Supprime-le si tu utilises ce code

Message édité par: Robert, à: 18/11/2005 14:30
 
F

Fanfan68

Guest
Bonjour Robert,

Super, c'est ce que je cherchais.

Dis moi, j'ai un autre soucis expliqué sur un post précédent, pourrais-tu y jeter un oeil si tu as un moment, le post s'appel 'ComboBox.....le mystère ' des fois que tu aurais une réponse.

Merci d'avance et merci également pour la bonne humeur et le sens de l'humour dont tu fais par sur ce forum

A bientôt
 

Robert

XLDnaute Barbatruc
Bonjour Fanfan, bonjour le forum,

Tout comme Hervé je n'aime guère la methode RowSource. Mais pour une Combobox directement dans la feuille je ne vois pas comment faire autrement... Mais, là ou l'équipe à Bilou est très forte, c'est que la syntaxe est différente. Il faut écrire : ListFillRange au lieu de RowSource.

ComboBox1.ListFillRange = 'Base!A1:A' & Sheets('Base').Cells(1, 1).End(xlDown).Row
 
F

Fanfan68

Guest
C'est fou ça, ça marche !!! (sauf que mon code juste avant 'ComboBox1.clear' plante maintenant)


Comment vous faites tous à savoir tout ça, vous travaillez de mémoire ou vous connaissez des sites ou trouver les renseignements ?

C'est incryable, vous êtes vraiment des bons.

Mille merci robert
 

Yamina

XLDnaute Nouveau
Re : Insertion "Nom->Définir" en macro

Bonjour,

Durant l'enregistrement d'une macro, j'ai inséré "nom->défénir"...etc.
le nom que j'ai affecté à la plage étant le nom proposé par l'application, qui est en l'occurence le texte contenu dans la cellule sélectionnée.
et c'est ce que j'aimerais que ma macro fasse à chaque exécution.
mais ce qui arrive en fait, c'est que la nouvelle plage prend toujours le premier
nom que j'ai affecté à ma plage initiale.


Range("A1:E60").Select
Range("B2").Activate
ActiveWorkbook.Names.Add Name:="sem1", RefersToR1C1:= _
"=sem!R1C1:R60C5"



Je voudrais remplacer "sem1" par contenu de la cellule B2

Merci de votre aide.
 

Yamina

XLDnaute Nouveau
Re : Insertion "Nom->Définir" en macro

Bonjour Havey,
Merci pour ta réponse, je l'ai essayé, mais ça ne donne pas le résultat que je veux.
En fait avec ton code, la plage sélectionner va se nommer tout le temps sem2, mais moi ce que je veux, c'est lui affecter un nom qui serait stocké dans une cellule donnée.
Vois tu ce que je veux dire?

Merci encore

Yamina.
 

wilfried_42

XLDnaute Barbatruc
Re : Insertion "Nom->Définir" en macro

bonjour à tous

je suis le fil, mais je n'ai rien compris exactement
le probleme c'est que definir un nom qui existe deja c'est dur

definition normale
ActiveWorkbook.Names.Add Name:="sem1", RefersTo:=range("A1:E60")

definition en fontion d'un bloc defini ailleur (en A1) : en A1 - A1:E60
ActiveWorkbook.Names.Add Name:="sem1", RefersTo:=range(range("A1"))

definition d'un nom se trouvant en A2 avec un bloc defini en A1
ActiveWorkbook.Names.Add Name:=range("A2"), RefersTo:=range(range("A1"))

definition d'un nom dont l'adresse du nom se trouve en A2 et un bloc defini en A1
ActiveWorkbook.Names.Add Name:=range(Range("A2")), RefersTo:=range(range("A1"))

Bonne journée à vous
 

Yamina

XLDnaute Nouveau
Re : Insertion "Nom->Définir" en macro

Merci Wilfried,

Dans la panoplie des possibilités que tu m'a suggéré, j'ai trouvé la réponse à ma question, c'était la quatrième possibilté.

je l'ai essayé et ça marche à merveille!!!

Merci beaucoup!!
 

Discussions similaires