Accès rapide à cellule nommée d'un autre classeur

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 !

sergio_bzh

XLDnaute Nouveau
Bonjour
J'écris en ce moment une macro dans un classeur "Classeur1" et je cherche à accéder à la valeur d'une cellule nommée dans un autre classeur déjà ouvert "Classeur2" pour ensuite écrire cette valeur dans mon classeur1.

Je peux toujours faire comme cela, 'plage' contenant le nom de ma cellule nommée :

Code:
Application.Screenupdating = False 
Workbooks("Classeur2.xls").Activate 
v = Application.Range(plage).Value
Workbooks("Classeur1.xls").Activate 
ActiveCell.Value = v
Cela fonctionne bien mais en fait c'est une boucle à faire quelques milliers de fois et de switcher sans arrêt entre les 2 classeurs prend pas mal de temps.

Je pensais que quelque chose comme ça allait fonctionner mais que nenni :

Code:
Workbooks("Classeur2.xls").Application.Range(plage).Value

Comment peut-on accéder plus rapidement à la cellule nommée d'un autre Classeur ?

Au passage, je trouve curieux que le Range d'une cellule nommée dépende de 'Application' et non pas de 'Workbooks' car le tableau des noms (Names) est propre à un workbook.

Merci.
Sergio
 
Re : Accès rapide à cellule nommée d'un autre classeur

Rien ne fonctionne, j'ai essayé un peu tout :

Nam est donc le nom d'une variable et 'Activ' est le nom d'une cellule nommée contenu dans Nam :
Code:
            Workbooks(xlName).Range("""" & Nam & """").Value
            Workbooks(xlName).Range("Activ").Value
            Workbooks(xlName).[Activ].Value
            Workbooks(xlName).["Activ"].Value
Range n'étant pas une propriété de Workbooks, j'ai toujours l'erreur "Propriété ou méthode non géré par cet objet".

Et pour le code suivant , je n'essaie pas car cela ne dépend pas des Worksheets et je ne sais pas dans quelle Worksheet est ma cellule nommée :
Code:
Workbooks("classeur2.xls").Sheets("feuil1").Range( "toto").Value

En tous cas, merci pour les réponses.
 
Re : Accès rapide à cellule nommée d'un autre classeur

bonsoir à tous

peut être comme ceci, si j'ai bien compris :

Code:
Workbooks("classeur1.xls").Sheets("Feuil1").Range("A1").Value = _
    Workbooks("classeur2.xls").Names("plage").RefersToRange.Value

"plage" étant une plage nommée d'une seule cellule.

bonne soirée
@+

Edition : .value au lieu de .value2
 
Dernière édition:
- 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

Retour