[VBA] insérer une plage nommée

  • Initiateur de la discussion Initiateur de la discussion F22Raptor
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F22Raptor

XLDnaute Impliqué
Bonjour à tous,
j'ai dans une feuille des futurs noms de plages en colonne A, et en colonne B les références à utiliser pour les plages (références incluant la formule DECALER).
J'essaie d'ajouter les noms et les références associées par macro, mais ça ne passe pas !

Soit je précise dans le code qu'il faut ajouter la référence DECALER(..........) et ça passe, mais Excel ajoute des guillemets ="DECALER(....)"
Soit je précise dans le code d'ajouter la référence =DECALER(.......) et là il n'en veut pas !

J'ai essayé ensuite de faire un REPLACE des guillemets par "" une fois les noms déclarés, mais Excel n'en veut pas.

Dans l'exemple joint, ma liste ne contient qu'une ligne, pour simplifier les choses (mon code dans Module1)


Une idée ?
 

Pièces jointes

Dernière édition:
Re : [VBA] insérer une plage nommée

Bonjour,

J'ai pas creusé.. mais à savoir:
quelques modifs à faire en fonction de ceci
un ; devient une simple , en VBA
un " devient un double "" en VBA

ainsi..
dans ta colonne B, ca deviendrait ??
DECALER([MonClasseur.xls]Feuil1!$I$1,EQUIV(""code produit"",[MonClasseur.xls]Feuil1!$A:$A,0),,1000)
 
Re : [VBA] insérer une plage nommée

avec ce code..
inscription de la formule directement dans le code. sans aller lire la colonne B.. ca fonctionne
Code:
Sub Macro1()
    
    Dim MaCell As Range
    Dim MaRef As String
    
    For Each MaCell In Range("A2")   'test simplement sur A2, mais il y aura une plage de noms et de réf en A2:B15
        'MaRef = MaCell.Offset(0, 1)
        MaRef = "=DECALER([MonClasseur.xls]Feuil1!$I$1,EQUIV(""code produit"",[MonClasseur.xls]Feuil1!$A:$A,0),,1000)"
        ActiveWorkbook.Names.Add Name:=MaCell, RefersTo:=MaRef
    Next MaCell

End Sub


mais si on va lire la meme chaine dans la cellule B.. ca ne va plus
il y a une subtilité surement toute simple..
 
Re : [VBA] insérer une plage nommée

Hello Vgendron,
C'est l'opération inverse que je souhaite faire : partir de la réf correcte tapée dans la feuille Excel en B2, et la faire accepter en réf dans les gestionnaire de nom.
Effectivement mon DECALER([MonClasseur.xls]Feuil1!$I$1;EQUIV("code produit";[MonClasseur.xls]Feuil1!$A:$A;0);;1000) en B2 (ce serait le range("B2").Value)

Devient :
="DECALER([MonClasseur.xls]Feuil1!$I$1;EQUIV(""code produit"";[MonClasseur.xls]Feuil1!$A:$A;0);;1000)"
dans la zone de réf du gestionnaire de nom quand je lance ma Macro1

C'est à dire que le script suivant a ajouté des guillemets au début et à la fin de la formule, et des double-guillemets sur la chaîne à l'intérieur de la formule


EDIT : je n'avais pas vu ta seconde réponse : je creuse en ce sens et te tiens au courant. thx ! 🙂
 
Re : [VBA] insérer une plage nommée

Merci Vgendron : tu m'as mis sur une sacrée bonne piste, qui m'a permis de trouver le pb ! 😀
Il fallait que je tape la formule en B2 avec le égal pour la commencer, mais dans la cellule formatée en texte

Ainsi, il l'accepte complètement avec son "égal" en VBA, et la réf est bien prise.0

Merci bcp !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Insertion de photo
Réponses
14
Affichages
655
Retour