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

Nommer des variables

  • Initiateur de la discussion Initiateur de la discussion Pascal
  • 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 !

P

Pascal

Guest
Bonjour,

Suite à un précédent sujet et après une recherche dans divers forum, je n'arrive pas à créer la macro suivante :
Je souhaiterais dans la colonne B du tableau suivant définir les variables à l'aide des noms figurant dans la colonne A.
Par exemple je souhaiterais que la cellule B1 contienne la valeur de la variable nommée MR000.
Manuellement je le ferai à l'aide de la fonction Insertion\Nom\définir.
J'ai tenté des choses à l'aide de la commande Add Name, mais j'ai toujours des erreurs de syntaxe.

D'avance merci pour vos réponses
 

Pièces jointes

Bonjour Pascal,

Le code ci-dessous devrait te convenir je pense.

Range("B1").Value = Range(Range("$A$1").Formula).Value

Attention, tes noms ne doivent définir qu'une seule cellule à la fois, sinon ça te renverra la valeur de la première cellule du range uniquement.

J'espère que j'ai bien compris ta question, n'hésite pas à revenir sinon.

A+

José
 
Merci José,

Mais j'ai oublié de préciser un détail, en fait je veux utiliser les noms de Excel menu :
Insertion\Nom\Définir.

Pour que dans n'importe quelle feuille de mon classeur si j'utilise une formule =MR000, cela me renvoie la valeur contenue dans feuil1!$B$1 et que pour =MR001 cela me renvoie la valeur contenue dans feuil1!$B$2 ...

Je voudrais automatiser la fonction DEFINIR NOM, j'ai en réalité 2000 variables à nommer.

J'ai essayé différents codes avec Add Name mais cela ne marche pas, j'ai des erreurs de syntaxes. Je pense avoir raison d'utiliser Add Name, mais je ne pense pas utiliser la bonne syntaxe.

J'ai démarré avec l'enregistreur de macro :

Sub Macro2()
Range("A1").Select
ActiveCell.FormulaR1C1 = "MR000"
Range("B1").Select
ActiveWorkbook.Names.Add Name:="MR000", RefersToR1C1:="=Feuil1!R1C1"
End Sub

Mais je n'arrive pas à automatiser...
 
Salut Pascal et José,

Voici une procédure pour nommer tes cellules de la colonne B en fonction du contenu de la colonne A :

Sub NommerCellules()
Dim CL As Range
Dim Temp As String
Dim DerLigne As Long
DerLigne = Range("A65536").End(xlUp).Row
For Each CL In Range("A1:A" & CStr(DerLigne))
Temp = "=" & ActiveSheet.Name & "!" & Range("B" & CL.Row).Address
ActiveWorkbook.Names.Add Name:=CL.Text, RefersTo:=Temp
Next
End Sub

Cette procédure marche pour les appellations en MR ou SP. En revanche, ça ne passe pas pour AM car AM correspond à une colonne d'Excel.
Tu peux régler le problème en révisant ta nomenclature (éviter les noms qui vont de AA jusqu'à IV) ou bien en ajoutant systématiquement un caractère à celle-ci, par exemple un X :
XMR001, XSP001, XAM001...
Comme ceci :
ActiveWorkbook.Names.Add Name:="X" & CL.Text, RefersTo:=Temp

A+
Horatio
 
Re Pascal,

En fait c'est le contraire que tu veux faire ? Tu veux nommer chaque cellule de la colonne B du nom inscrit en colonne A s'il est renseigné, c'est ça ?

J'attends ta confirmation avant de me lancer.

A+

José
 
Merci Nelson,

Et Merci pour l'info sur AM, je ne savais pas qu'il pouvait y avoir ces conflits.

José, oui je souhaite nommer colonne B à l'aide des noms contenus dans la colonne A. Je vais tester la macro proposée par Nelson...
 
Re Pascal,

CStr est une fonction de conversion d'une donnée numérique en chaîne de caractères. Ici elle n'est pas indispensable car VBA fait la conversion tout seul, disons que c'est un vieux réflexe de programmeur (ou un réflexe de vieux programmeur !).

A+
Horatio
 
Salut "Pascal"
bonjour"jmps et l'amiral"
depuis ce matin je me demandais pourqoui cà bugger à partir de 150 noms
je me suis dis que peut être le nombre de plages nommées était limité mais non !!!!jamais je n'aurais pensé au réf Colonnes
donc un long moment passé à tourner le problème dans tout les sens
mais j'ai quand même appris pas mal de choses
je ne joint rien ,puisque ma procedure et sensiblement la même que celle de l'Amiral
merci
A+++
Jean Marie
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
  • Question Question
Réponses
5
Affichages
99
Didierpasdoué
D
Réponses
0
Affichages
603
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…