VB.NET Portée de Variable [Résolu/Fermé]

Signaler
Messages postés
116
Date d'inscription
dimanche 14 septembre 2008
Statut
Membre
Dernière intervention
30 août 2012
-
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
-
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

Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 155
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
116
Date d'inscription
dimanche 14 septembre 2008
Statut
Membre
Dernière intervention
30 août 2012
29
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.
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 155
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