Récupérer une variable d'un classeur dans un UserForm d'un autre classeur

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

Yaloo

XLDnaute Barbatruc
Bonjour à tous,

Je n'arrive pas à récupérer des variables d'un classeur (classeur1) dans l'UserForm1 du classeur2.

Bien que mes variables soient en Public, impossible de les récupérer dans mon UserForm.

Comment faire ?

Merci d'avance pour vos réponses.

Martial

PS : Enregistrer les 2 fichiers ci-joints, ouvrir Classeur1, puis modifier uniquement les données des cellules B1 à B3, cela lance la macro et l'ouverture du Classeur2.
 

Pièces jointes

Re : Récupérer une variable d'un classeur dans un UserForm d'un autre classeur

Bonjour,

Je ne sais pas passer le contenu d'une variable d'un classeur à l'autre.
Mais on peut directement lire d'un un autre classeur.

Examine cela.

G
 

Pièces jointes

Re : Récupérer une variable d'un classeur dans un UserForm d'un autre classeur

Bonsoir.
En changeant le nom du projet (qui est par défaut "VBAProject") du Classeur1 en un nom unique parmi tous les projets ouverts, il devient possible d'ajouter ce projet aux références du Classeur2. Il figure en effet alors dans la liste des références disponibles au même titre que les fournitures système. Les variables Public du Classeur1 seront dès lors connues dans Classeur2 au moins à condition de les faire précéder de son nom de projet et d'un point (ce que je fais toujours même si c'était facultatif, ce que j'ignore).
Voir toutefois si cette conséquence ne sera pas un inconvénient: le Classeur1 sera ouvert automatiquement à l'ouverture de Classeur2 et ne pourra plus être fermé jusqu'à fermeture de tout classeur le tenant en référence.
Cordialement.
 
Re : Récupérer une variable d'un classeur dans un UserForm d'un autre classeur

Bonjour à tous les 2,

Désolé problème d'orage et de connexion Internet. Je vois, à l'instant, vos réponses.

Merci pour vos réponses, je vois ça dès que possible et vous tient au courant.

Il me semblait (d'après l'aide) que lorsque l'on déclarait une variable en Public, on pouvait la récupérer dans un autre classeur.

Remarques

Les variables déclarées avec l'instruction Public sont accessibles à toutes les procédures, dans l'ensemble des modules de toutes les applications, à moins que Option Private Module ne soit activé. Dans ce cas, les variables ne sont publiques qu'au sein du projet qui les accueille.

Martial
 
Re : Récupérer une variable d'un classeur dans un UserForm d'un autre classeur

Bonjour,

Oui, publiques entre les différentes macros des différentes modules et userforms ... dans un même classeur. 🙁

Sauf avec la façon de faire expliquée par Dranreb.

G
 
Dernière édition:
Re : Récupérer une variable d'un classeur dans un UserForm d'un autre classeur

Re,

Dans l'aide :

Remarques

Les variables déclarées avec l'instruction Public sont accessibles à toutes les procédures, dans l'ensemble des modules de toutes les applications, à moins que Option Private Module ne soit activé. Dans ce cas, les variables ne sont publiques qu'au sein du projet qui les accueille.

dans toutes les applications, cela me semblait correspondre à tous les classeurs et documents de toutes les applications "Excel" "Word" "Access" etc...

Martial
 
Re : Récupérer une variable d'un classeur dans un UserForm d'un autre classeur

Ça ne veut pas dire qu'il ne faut pas préfixer ces dites variables du nom du projet qui les contient. Car il est sûr que plusieurs projets peuvent avoir les mêmes !
Mais peut être n'est-il pas indispensable de les avoir en référence. À tester…
P.S. C'est un peu analogue aux modules de classe: les variables et procédures déclarées Public en sont respectivement des propriétés et des méthodes, et il faut les préfixer de l'instance de la classe pour les utiliser.
À +
 
Dernière édition:
Re : Récupérer une variable d'un classeur dans un UserForm d'un autre classeur

Bonsoir à tous,

Merci à vous 2, j'ai pu mettre en pratique.
J'ai pris la solution de Dranreb, car les variables changent de source, donc plus facile à gérer avec le changement du nom de projet et la référence à ce nom.

Martial
 
- 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

Réponses
3
Affichages
582
Retour