[VBA] Différence pour nomer

Kiseki

XLDnaute Occasionnel
Bonjour,

Pourriez-vous m'indiquer la différence entre ces deux lignes de code :

Code:
Names.Add Name:="Nom", RefersTo:="=" & activesheet.name & "!" & activecell.Address

Code:
activecell.name = "Nom"

La première serait simplement plus flexible au niveau de la référence ?

La deuxième ferait toujours une référence absolue en A1 ou (suivant réglage des options) L1C1 ?


Quelle code est le plus rapide/recommandé d'utiliser ?
 

Dranreb

XLDnaute Barbatruc
Re : [VBA] Différence pour nomer

Bonjour pierrejean
Tu as raison. J'utiliserai dorénavant aussi la seconde forme qui évite une recherche d'Address.
C'est à se demander pourquoi l'enregistreur prend systématiquement la 1ère forme.
Peut être est-ce pour ne pas faire oublier que pour un Range il s'agit d'un objet d'une collection Names et non d'un simple String comme pour la plupart des autres objets. Il s'en suit que la syntaxe simplifiée entraîne un effet différent: au lieu d'en remplacer un nom existant elle en ajoute un second qui s'y réfère aussi.
Cordialement.

La première serait simplement plus flexible au niveau de la référence ?
Oui, cela va de soi: la syntaxe simplifiée ne permet de créer que des noms se référant à la plage spécifiée, et non à des constantes ou des formules.
À+
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : [VBA] Différence pour nomer

Salut à tous
Les deux cas donne le même résultat sur une nomination simple. Mais par exemple, pour définir une liste dynamique, seul le premier peut être utilisé, le second ne le permettant pas.
A+
Edit : Doublon avec précédent.
 

Statistiques des forums

Discussions
312 584
Messages
2 089 976
Membres
104 323
dernier inscrit
NabBEn