VB.NET Portée de Variable

Résolu/Fermé
Phoenellion Messages postés 116 Date d'inscription dimanche 14 septembre 2008 Statut Membre Dernière intervention 30 août 2012 - 22 janv. 2012 à 04:00
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 22 janv. 2012 à 16:04
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

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
Modifié par lermite222 le 22/01/2012 à 05:33
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
Phoenellion Messages postés 116 Date d'inscription dimanche 14 septembre 2008 Statut Membre Dernière intervention 30 août 2012 33
22 janv. 2012 à 14:40
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
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
22 janv. 2012 à 16:04
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