je suis sur un projet d'application WindowsForms où j'ai besoin de variables de portée publique.
Voici un apperçu du code de la première Form du l'appli :
Option Explicit On
Public Class Ouverture
Public Argent As Integer
+ Private Sub NouvPart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NouvPart.Click
+ Private Sub Présentation_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Présentation.Click
+ Private Sub Charger_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Charger.Click
+ Private Sub Crédits_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Crédits.Click
+ Private Sub Quitter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Quitter.Click
End Class
Je pensais que déclarer une variable ainsi serait suffisant mais dès que je passe à un autre form, la variable Argent est identifiée comme non déclarée.
J'ai manqué quelque chose ? Je suis plutôt VBA (Excel et Access) à l'origine donc je suis peut-être passé à côté d'une subtilité du VB.NET ?
Bonjour,
Pour qu'une variable soit "tout à fait " public tu doit la déclarer dans un module.
Projet >> Ajouter une classe >> Module.
Mais tu m'étonne, en VBA c'est exactement la même chose.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Salut Lermite,
j'ai pensé à cette histoire de module, mais je me suis rendu compte que si un projet vba ne peut démarrer que sur un module (module : thisworkbook, au mieux) et qu'une appli en WindowsForm que sur un form.
J'ai donc pensé qu'il devait y avoir une différence là aussi pour les variables à déclarer en public.
Donc d'après ce que tu me dis, si j'ai des variables publiques à déclarer au lancement de l'appli, il faudrait que dans mon Sub FormDémarrage_Load j'appelle un module de mon cru qui déclarerait toutes mes variables publiques ?
Merci pour tes lumières. J'essaye ça et je te tiens au jus.
Tu confond (en VBA) module de feuille et MODULE.BAS qui sont des modules qui n'ont rien à voir avec des feuilles (en VBA) ou des Forms (en VB.net ou 6)
Le 1er que tu ajoute se nomme toujours Module1.bas en VBA et .vb en VB.Net