Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[VBA] insérer un Nom dans une feuille par macro

F22Raptor

XLDnaute Impliqué
Hello
J'essaie d'insérer un nom par macro avec ActiveWorkbook.Names.Add
C'est un nom de plage de taille variable (=DECALER)

Ca marche au sens où dans le gestionnaire de noms, on voit bien la déclaration (il faut juste penser à faire référence à une adresse avec des VIRGULES et non des Points-Virgules, quand on passe par macro).

MAIS : quand je tape une formule faisant référence à ce nom renseigné par macro, il renvoie l'erreur #NOM?

Dans l'exemple joint :
J'ai inséré manuellement le nom "MaCol1" faisant référence au deuxième onglet, colonne A.
En ligne 11 : le test fonctionne, car je l'ai fait en manuel

J'ai inséré par macro le nom "MaCol2" (Feuil2, colonne B)
En ligne 12 : j'ai une erreur #NOM? Pourtant, dans le gestionnaire, il est bien là

J'ai préparé un bouton macro pour insérer le nom "MaCol3", si vous voulez tester.
En ligne 13, vous verrez le résultat après le clic (en l'occurrence, il ne se passera rien ! Toujours une erreur !)


Donc, comment insérer par macro des noms.
Etant entendu que ce n'est qu'un exemple : je vais avoir dans mon projet une vingtaine de noms à insérer, sur une dizaine de classeurs ... j'aimerais bien automatiser !
 

Pièces jointes

  • InsereNomMacro.xlsm
    34.2 KB · Affichages: 42

F22Raptor

XLDnaute Impliqué
Re : [VBA] insérer un Nom dans une feuille par macro

Hello David,
En effet, ça marche pour des références fixes, mais il ne me prend pas la formule "=DECALER"

Or, j'en ai besoin, car ma zone sera de taille variable
 

david84

XLDnaute Barbatruc
Re : [VBA] insérer un Nom dans une feuille par macro

Tu dois apprendre à te servir de l'enregistreur de macro pour récupérer la syntaxe adéquate pour ensuite l'adapter :
Code:
ActiveWorkbook.Names.Add Name:=Range("A4").Value, RefersTo:="=OFFSET(Feuil2!$C$1,,,COUNTA(Feuil2!$C:$C))"
A+
 
Dernière édition:

F22Raptor

XLDnaute Impliqué
Re : [VBA] insérer un Nom dans une feuille par macro

Ah oui en effet !
Je n'avais pas soupçonné que ça puisse venir de là, car dans le gestionnaire de noms, le script est parfaitement bon avec "=DECALER", et il transpose les virgules en points-virgules.

Merci David !
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…