Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Declaration et initialisation variables

tiow

XLDnaute Nouveau
Bonjour à tous,

J'aimerai savoir comment faire pour déclarer une variables avant toutes autres?
En faite j'ai plusieurs modules qui utiliserait cette variable (nombre de boucles statique).. Je l'ai donc déclarer public, ms elle est initialisée à 0, j'aimerai par exemple l'initialiser à 5 une seule fois dans mon projet, et pas dans chaque module; indépendemment de la macro appelée. Est-ce possible?

Merci,
tiow
 
G

Guest

Guest
Re : Declaration et initialisation variables

Bonjour,

Une solution possible:

Laisser la déclaration dans un des module:

Code:
Public MaVariable as integer 'Exemple
Puis dans l'évènement Workbook_Open:

Code:
Private Sub Workbook_Open()
    MaVariable = 5
End Sub

A l'ouverture du classeur la variable sera initialisée à 5.

Une autre:

Mettre la valeur dans une cellule d'une feuille cachée et faire référence à elle plutôt qu'à une variable.

A bientôt
 

tiow

XLDnaute Nouveau
Re : Declaration et initialisation variables

Re,
Malheuresement, cette solution pose problème .. si les variables sont toutes réinitialisées, il faut réouvrir le fichier pour remettre MaVar à 5 ..
Il n'existe pas une commande qui initialise cette variable en premier ?

Sinon il ne me reste plus qu'a l'initialiser dans chaque module avec la même valeur .. car je ne voudrai pas la caché dans une feuille
 
G

Guest

Guest
Re : Declaration et initialisation variables

Bonjour, il y a une autre solution:

Dans un module, rajouter la propriété suivante:

Code:
Private mMaVariable As Integer

Public Property Get MaVariable() As Integer
    
    If mMaVariable < 5 Then mMaVariable = 5
        MaVariable = mMaVariable

End Property

Public Property Let MaVariable(ByVal NewValeur As Integer)

    mMaVariable = NewValeur

End Property


Et tu pourras faire référence à la variable comme une autre.
 
G

Guest

Guest
Re : Declaration et initialisation variables

Oui, car en fait elle devient une propriété Public et non plus une variable.

Autre solution qui supprime une étape.

Code:
Public MaVariable as integer

Function GetMavariable() as integer
   if MaVariable>5 then GetMaVariable=5 else GetMaVariable=MaVariable
End Function

Pour donner une valeur:
MaVariable=123456

Pour Récupérer et utiliser la valeur:
X=GetMaVariable()*12345/3576+234567

Pour ma part je préfère la propriété.
 
G

Guest

Guest
Re : Declaration et initialisation variables

Hello

J'ai du mal comprendre mais
(issue de l'aide VBA)
Public Const MaVariable As Integer = 5

ne s'applique pas à ton cas?

Non parce qu'il veut une variable public dont la valeur puisse changer tout en étant initialisée au départ à 5
 

tiow

XLDnaute Nouveau
Re : Declaration et initialisation variables

Merci Staple1600,
C'est exactement ce que je cherchais .. j'avais tenté Public Static Mavar as long .. mais cela ne fonctionnait pas.
Pour Hasco , en fait quand je disait "facilement changeable" je voulais que la variable soit facilement accessible dans le code pour la changer. Car elle ne doit être que rarement modifier.

En tous cas merci à tous les deux,
Bonne fin de journée
tiow

edit: Promis j'avais regardé dans l'aide !! mais apparement pas assez ..
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…