VB.NET Portée de Variable

Résolu
Phoenellion Messages postés 131 Statut Membre -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,

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 ?

3 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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.
    3
  2. Phoenellion Messages postés 131 Statut Membre 33
     
    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.
    0
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    0