Passage de variables Excel-Vba

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

L

Ludo-ly

Guest
Bonjour à tous,

Après avoir lu plusieurs "posts" sur ce forum, j'ai eu beau suivre certaine indications mais cela ne résoud pas mon problème que voici :

J'ai un bouton sur une feuille Excel qui lance une procédure principale "Public Sub Traitement01" qui elle-même ouvre un formulaire "Public Sub Form01".

Pourquoi "Public" car je voudrais que les variables utilisées dans la procédure du formulaire (Form01) soient disponibles dans la procédure principale (Traitement01), enfin la valeur de ces variables.

Cela ne fonctionne pas. J'ai, par exemple, voulu annuler toutes les procédures en cours à partir du bouton "Annuler_Form01" de "Form01" (car soit dit en passant je n'ai trouvé aucune fonction qui le permette sauf celle qui ferme Excel), et pour cela j'ai utiliser la variable booléenne "Annuler_procedure" de façon à ce que si sa valeur est "True", je réalise dans "Traitement01" un "Exit Sub".

Hélas, le contenu de la variable "Annuler_procedure" n'est pas conservé à la fermeture du formulaire (2 tests effectués avec "Unload Form01" et "Form01.Hide"). J'ai aussi tenter une déclaration de la variable en Static dans "Traitement01", pas mieux, et une déclaration hors procédure en Public, idem.

Si quelqu'un pouvait me fournir une astuce ou me mettre sur la voie d'une autre façon de procéder, ...

Merci d'avance.
 
salut

ch'uis en pleine digestion donc je suis pas sur d'avoir saisi toute la substance de ton message. Mais je crois que ce que tu veut c'est pouvoir avoir des variables qui ont une porté au niveau projet ? ( et pas procedure )
si oui, alors il faut que tu les dimensione dans "général" et dans un module. ( apparament tu as déja le module, et bien dimensione ta variable comme ça au tout début du module ( avant le premier public_sub )

Public TaVariable as TonTypeDeVariable

Vala, ta variable est appelable de partout.
 
Merci Antoine,

Tu as compris effectivement ce que je voulais faire sauf sur un point, c'est le contenu de la variable que je veux pouvoir utiliser dans tous le projet.

J'avais déjà essayé de faire une déclaration de la variable au niveau public et dès la première procédure Vba appelée.

Il y a effectivement un mieux, au lieu d'avoir un contenu de variable vide, j'ai sa valeur par défaut (dans le cas d'un booléen "False") mais cette valeur n'est pas modifiée par la sous-procédure (qui lui donne la valeur "True") incluse dans le formulaire appelé par la procédure principale.

Quelqu'un a-t-il une autre solution ?

Je vous join un exemple.
 

Pièces jointes

salut

Si tu déclares bien ta variable public avant la procédure dans un module tu récupères bien sa valeur comme antoine te l'a dit.

Toi tu l'as déclaré public dans une feuille et pas dans un module.

Bon courage

Pascal
 
Salut Antoine,

Je te remercie, cela fonctionne bien avec un module.

Je n'avais pas pris en compte la différence entre module et feuille ou formulaire.

Par contre, tu ne saurais pas s'il y a une fonction qui permet d'arrêter toutes les procédures sans sortir d'Excel ?

Ludo.
 
si si
c'est fort pratique d'ailleurs

utilise "exit" ou "exist sub" selon les cas. concrétement il arrete la procédure quand il arrive là. donc tout le code qui suit n'est pas exécuté
 
Merci Antoine,

C'est donc ce que j'utilise déjà et qui fonctionne maintenant, grâce à votre aide, en utilisat le passage de variable publique déclaré dans un module qui permet de savoir si dans mon projet le bouton Annuler a été cliqué.

Ludo.
 
- 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

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
89
Réponses
2
Affichages
422
Réponses
3
Affichages
248
Réponses
6
Affichages
154
Retour