VBA écrire une formule dans un Nom/défini

Bonjour à tous,

en VBA,

Est-il possible de définir un nom et d'y affecter une formule ?

Je pense à ce poste avec une réponse de Amadéus

lien: https://forum.excel-pratique.com/excel/fonction-sur-2-colonnes-avec-couleur-t19390.html

c'est à dire:

Dans "Fait référence à", entrer la formule

=LIRE.CELLULE(63;!$V5)

et si oui, comment coder cette action ?

Bonne soirée

Claude

Bonsoir,

Pour créer le nom test contenant la formule =LIRE.CELLULE(63;!A1) j'ai ceci en VBA :

ActiveWorkbook.Names.Add Name:="test", RefersToR1C1:="=GET.CELL(63,!RC)"

Dans le même genre on peut donc y placer une fonction =DECALER(...) pour que la macro crée ce que j'appelle une plage dynamique.

A+

bonne nuit dachevid,

C'est tout à fait ce que je cherchais,

Je te remercie du tuyau

en plus, saurai-tu remplacer le "R1C1" de RefersToR1C1: par une référence absolue

pareil pour le "RC"

exemple:

ActiveWorkbook.Names.Add Name:="test", RefersToR1C1:="=decaler(RC,,,nbval(c:c)-1)"

Amicalement

Claude

Bonsoir Claude,

Dans l'aide j'ai trouvé qu'on pouvait utiliser RefersTo ou RefersToR1C1 mais je t'avouerais que pour l'instant je n'ai pas vu la différence !!

En utilisant les fonctions ADRESSE et INDIRECT (j'ai remarqué d'ailleurs qu'on peut saisir la formule du nom en français ou en anglais, ça marche avec decaler+indirect+adresse+nbval ou offset+indirect+address+counta !) on peut créer une référence absolue dans le nom

ActiveWorkbook.Names.Add Name:="test", RefersToR1C1:="=decaler(INDIRECT(ADDRESS(2,3)),,,nbval(c:c)-1)"

Ici j'ai figé la cellule C2 (=address(2,3)) mais pas la colonne C dans nbval. Si je suis en F1 le nom fait toujours réfénrece à C2 mais nbval à la colonne F.

Bon amusement avec ce nouveau jouet, moi je vais encore me coucher moins et je viens encore de découvrir que je suis loin (à des années lumière) de tout connaître d'Excel.

A+

Aide d'excel

expression.Add(Name, RefersTo, Visible, MacroType, ShortcutKey, Category, NameLocal, RefersToLocal, CategoryLocal, RefersToR1C1, RefersToR1C1Local)

expression Obligatoire. Expression qui renvoie un objet Names.

Name Argument de type Variant facultatif. Obligatoire si vous n'avez pas spécifié NameLocal. Texte à utiliser comme nom (dans le langage de la macro). Les noms ne doivent pas contenir d'espace et ne doivent pas ressembler à des références de cellules.

RefersTo Argument de type Variant facultatif. Obligatoire à moins qu'un autre argument RefersTo ne soit spécifié. Décrit ce à quoi se rapporte le nom (dans le langage de la macro, notation style A1). Remarque Rien n'est renvoyé si la référence n'existe pas.

Visible Argument de type Variant facultatif. Affectez-lui la valeur True pour définir le nom normalement. Affectez-lui la valeur False pour définir le nom comme nom masqué (c'est-à-dire qu'il n'apparaît pas dans les boîtes de dialogue Définir un nom, Coller un nom ou Atteindre). Valeur par défaut : True.

MacroType Argument de type Variant facultatif. Type de macro, comme indiqué dans le tableau suivant :

Valeur Signification

1 Fonction définie par l'utilisateur (procédure Function)

2 Macro (ou procédure Sub)

3 ou non spécifiée Aucun (nom qui ne se réfère ni à une macro ni à une fonction définie par l'utilisateur)

ShortcutKey Argument de type Variant facultatif. Touche de raccourci de la macro. Il doit s'agir d'une seule lettre, telle que « z » ou « Z ». Ne s'applique qu'aux macros de commande.

Category Argument de type Variant facultatif. Catégorie de la macro ou fonction si l'argument MacroType a la valeur 1 ou 2. La catégorie est utilisée dans l'Assistant Fonction. La référence des catégories existantes est soit un nombre (à partir de 1), soit un nom (dans le langage de la macro). Microsoft Excel crée une nouvelle catégorie si la catégorie spécifiée n'existe pas encore.

NameLocal Argument de type Variant facultatif. Obligatoire si Name n'est pas spécifié. Texte à utiliser pour le nom (dans la langue de l'utilisateur). Les noms ne doivent pas contenir d'espace et ne doivent pas ressembler à des références de cellules.

RefersToLocal Argument de type Variant facultatif. Obligatoire à moins qu'un autre argument RefersTo ne soit spécifié. Décrit ce à quoi se rapporte le nom (dans la langue de l'utilisateur, notation style A1).

CategoryLocal Argument de type Variant facultatif. Obligatoire si l'argument Category n'est pas spécifié. Texte identifiant la catégorie d'une fonction personnalisée dans la langue de l'utilisateur.

RefersToR1C1 Argument de type Variant facultatif. Obligatoire à moins qu'un autre argument RefersTo ne soit spécifié. Décrit ce à quoi se rapporte le nom (dans le langage de la macro, notation style R1C1).

RefersToR1C1Local Argument de type Variant facultatif. Obligatoire à moins qu'un autre argument RefersTo ne soit spécifié. Décrit ce à quoi se rapporte le nom (dans la langue de l'utilisateur, notation style R1C1).

Bonjour dachevid, forum,

Tout çà est très intéressant,

Dans l'aide j'ai trouvé qu'on pouvait utiliser RefersTo ou RefersToR1C1 mais je t'avouerais que pour l'instant je n'ai pas vu la différence !!

avec RefersTo , on peut mettre l'adresse absolue, comme je voulais sur mon poste précédent

çà donne :

ActiveWorkbook.Names.Add Name:="test", RefersTo:="=Decaler($c$3,,,nbval($c:$c)-1)"

cela m'ouvre des portes que je ne soupçonnais pas !

encore merci

Amicalement

Claude

Rechercher des sujets similaires à "vba ecrire formule nom defini"