Passage de variable de "forms" vers "vba" sous excel
Dernière réponse : dans Programmation
Sous excel :
comment recuperer une variable créer dans un formulaire - ex : public cancel_creation - dans un module vba - ex : if cancel_creation = false then ... ??
J'ai créé un formulaire avec un bouton cancel
J'associe au bouton cancel une variable cancel_creation
Ensuite, je veux tester dans un script "general" cette valeur, mais elle n'est pas initialisée.
le test se plante car cancel_creation est vide, alors qu'il est bien initialisé par le formulaire.
Comment passer cette variable sans aller l'écrire dans une cellule d'un coté pour la relire de l'autre ?
Merci
comment recuperer une variable créer dans un formulaire - ex : public cancel_creation - dans un module vba - ex : if cancel_creation = false then ... ??
J'ai créé un formulaire avec un bouton cancel
J'associe au bouton cancel une variable cancel_creation
Private Sub CommandButton2_Click() ' ' cancel the execution : close the sheet ' Unload TicketCreation cancel_creation = True End Sub
Ensuite, je veux tester dans un script "general" cette valeur, mais elle n'est pas initialisée.
Private Sub Workbook_Open() ' ' open the window command ' TicketCreation.Show ' If cancel_creation = False Then ' ' create ticket ' create_ticket ' End If ' End Sub
le test se plante car cancel_creation est vide, alors qu'il est bien initialisé par le formulaire.
Comment passer cette variable sans aller l'écrire dans une cellule d'un coté pour la relire de l'autre ?
Merci
Autres pages sur : passage variable forms vers vba excel
Lassé par la pub ? Créez un compte
Meilleure solution
Euh, tu as trouvé une solution palliative et tu veux faire mieux ?
Ben c'est bien ça. Alors sûr qu'on a des idées et qu'on va t'en proposer.
A toi de faire le tri.
Alors moi, je te propose de créer une variable public dans ton module d'où tu appelles ton "form", donc je suppose dans la partie "Microsoft Excel Objects" et dans ton form, tu renseignes cette variable :
Ben c'est bien ça. Alors sûr qu'on a des idées et qu'on va t'en proposer.
A toi de faire le tri.
Alors moi, je te propose de créer une variable public dans ton module d'où tu appelles ton "form", donc je suppose dans la partie "Microsoft Excel Objects" et dans ton form, tu renseignes cette variable :
' // Dans Microsoft Excel Objects, dans la feuille 1 Public cancelle As Boolean ' // Dans Form Feuil1.cancelle = True
merci pour l'info mais bien sur ça ne fonctionne pas pour moi car je n'ai qu'un seul projet ...
Tu dis dans le topic
et je pense que c'est cela qui m'intéresse justement.
J'ai mis le résultat de mon clic "cancel_creation" dans une cellule que je peux récupérer dans la suite du script. J'aurais juste aimé pouvoir me passer de cette écriture / lecture pour une variable qui se trouve dans le même projet mais pas au même endroit ( initialisée dans la partie "Forms" et utilisée dans la partie "Microsoft Excel Objects" )
Si tu as une autre idée je suis preneur bien sur, sinon tant pis je continuerais de passer par une cellule.
Tu dis dans le topic
Citation :
Mais certainement pas en mémoire, sauf si je n'ai pas compris ton histoire de "projetet je pense que c'est cela qui m'intéresse justement.
J'ai mis le résultat de mon clic "cancel_creation" dans une cellule que je peux récupérer dans la suite du script. J'aurais juste aimé pouvoir me passer de cette écriture / lecture pour une variable qui se trouve dans le même projet mais pas au même endroit ( initialisée dans la partie "Forms" et utilisée dans la partie "Microsoft Excel Objects" )
Si tu as une autre idée je suis preneur bien sur, sinon tant pis je continuerais de passer par une cellule.
Bonne nouvelle j'ai trouvé. Il faut que je cache mon formulaire, que j'utilise les variables qui sont toujours intialisées puis que je décharge le formulaire.
Merci de ton aide zeb, tes topics m'ont fait un brainstorming et voila !
code corrigé
si appuis sur cancel on cache le formulaire
private Sub cancelcreation_Click() ' ' cancel the execution : hide the sheet ' TicketCreation.Hide cancel_creation = "yes" End Sub
on récupère la variable car le contexte du formulaire existe toujours, il est juste caché
Private Sub Workbook_Open() ' ' open the window command ' TicketCreation.Show ' If cancel_creation = yes Then ' ' unload the form ' Unload TicketCreation ' ' create the ticket ' create_ticket ' End If ' End Sub
Ben t'es plein de bonne volonté : quand on te demande de respecter le forum, parce que tu n'aurais pas observé une obscure clause de publication, tu t'exécutes sans me raconter que je suis un immonde salopard d'oser sous-entendre les pires choses à ton endroits. Tes explications sont claires, tu ne fais que peu de fautes de français (si, si, il y en a
), tu dis bonjour, s'il vous plaît, merci. Quand on te donne un lien, tu le lis, tu fais l'effort de comprendre. Si ça ne te convient pas, tu le dis en expliquant pourquoi, et tu redonnes des informations supplémentaires pour que ton problème soit encore mieux cerné.
Bref, tu fais tout pour que ce soit agréable de te rendre service. Du coup, tu obtiens rapidement et précisément ce dont tu avais besoin. T'as tout compris aux forums, toi !
), tu dis bonjour, s'il vous plaît, merci. Quand on te donne un lien, tu le lis, tu fais l'effort de comprendre. Si ça ne te convient pas, tu le dis en expliquant pourquoi, et tu redonnes des informations supplémentaires pour que ton problème soit encore mieux cerné.Bref, tu fais tout pour que ce soit agréable de te rendre service. Du coup, tu obtiens rapidement et précisément ce dont tu avais besoin. T'as tout compris aux forums, toi !
Lassé par la pub ? Créez un compte