[Nb] Declarer variable PUBLIC ou GLOBAL

Résolu
Signaler
Messages postés
9
Date d'inscription
mercredi 16 mars 2005
Statut
Membre
Dernière intervention
2 avril 2005
-
Messages postés
436
Date d'inscription
dimanche 20 janvier 2002
Statut
Membre
Dernière intervention
2 février 2010
-
Salut à vous autres codeurs ^^
Je débute depuis qq jours en VB (je tourne sous VB 6.0) et je suis en train de tenter de mettre au point un morpion (SVP pas de commentaires sur le fait ke ce language n'est pas propice à ce genre d'utilisation, mais je programme pour le plaisir et le défi perso)

Je veux declarer une variable valides pour touts les bojets de ma feuille, donc je me suis dit jve utiliser la commande GLOBAL ou PUBLIC (explikez moi la difference o passage)
Sauf que le code fonctionne pas, lors du test, le log maffiche ceci:

"invalid attribute in sub or function" (en surligant la commande Public ou Global (j'ai ca avec les 2)

j'ai taper la commande ds Form_load pr kelle soit declaree au tout debut des le lancement.

Que dois-je faire pr ke ca marche ?

merci d'avance

6 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
re

Goto monLabel
....
monLabel:
Debug.Print "Suite"

Mais le Goto est à éviter, mieux vaut appronfondir l'usage des "If-Then-Else|ElseIf-End If"
ou encore les "Select Case maCondition"

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
3
Messages postés
436
Date d'inscription
dimanche 20 janvier 2002
Statut
Membre
Dernière intervention
2 février 2010
2
Non seulement le GOTO est à éviter mais en plus il est à proscrire... Mieux vaut une bonne récursive !!

Autrement en VB, pour la déclaration de variables de niveau feuilles :

c'est
'---------------------------
Option Explicit

Private maVariable as string

'en tout début de module de Form.
'---------------------------

Autrement, une variable accessible de partout, se déclare dans un module (avec extension .bas) .
Pour qu'elle soit accessible en dehors du module en question, on la déclare avec la portée Public:
'---------------------------
Public m_maVariable as string
'---------------------------

Bien sur plus c'est visible , plus ça consomme en ressource...
c'est comme les gens !!!

@+
3
Messages postés
262
Date d'inscription
lundi 26 août 2002
Statut
Membre
Dernière intervention
24 août 2005

On ne déclare pas une variable en public ou global (je crois que global
est réservé au module est rend la variable accessible a tous les
éléments du projet, form et module, alors que public c'est pour rendre
la variable accessible a toutes les procédures d'une form ou d'un
module mais un module exterieur ne pourra pas y accéder) on place ce
type de déclaration dans la zone 'general' la ou tu déclares les API
etc. Enfin bref en gros ca doit etre la premiere ligne de ton
projet tout en haut et en dehors de toute procédure.



Voila voila

@+

The Pingouin
0
Messages postés
9
Date d'inscription
mercredi 16 mars 2005
Statut
Membre
Dernière intervention
2 avril 2005

merci ca marche ^^

@++
0
Messages postés
9
Date d'inscription
mercredi 16 mars 2005
Statut
Membre
Dernière intervention
2 avril 2005

J'ai une autre requete:

Quelle est la commande type lbl, goto (comme sur les casio lol) sous VB6? si elle existe?
0
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
Global est un héritage de VB3 et n'est plus utilisé.
Remplacé par Public

Les définitions Public placées dans la partie Déclarations d'un module quelconque permet à cette variable d'être accessible dans tout le projet, sans exception.
Un Private dans une Déclaration de feuille, de module ... rend visible cette variable dans l'objet dans laquelle est déclarée.
C'est aussi valable dans une Sub ou Function, c'est aussi un objet somewhere ... Un Dim ne rend utilisable la variable qu'à l'intérieur de cette Sub ou Function.

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0