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

Variable persistante

D

Delcourt

Guest
Salut à tous,

Comment une variable peut-elle garder sa valeur dans toute l'application (même en changeant de module ou de procédure).

Merci
 
L

LaurentTBT

Guest
Bonsoir à tous

Il faut définir la variable en haut d'un module standart (c'est-à-dire pas dans une feuille de code d'un userform, où de Thisworkbook, où d'une feuille de calcul excel) avant de débuter les procédures:

Dim TaVariable as ... si tu n'utilises cette variable que dans ce module,

Public TaVariable as... si tu l'utilises aussi ailleurs.

Bonne soirée.
Laurent.
 
P

pascal76

Guest
Salut à Tous

Dis donc Laurent cela me rappelle un petit fil d'il y a quelques semaines cela.
Cela fait plaisir de te revoir ça faisait quelques jours qu'on t'avait pas lu.
 
D

Delcourt

Guest
J'ai essayé mais n'y arrive pas.
Dans l'exemple joint, en cliquant sur OK la valeur de la variable public "impr" est 1 mais il me met 0!!!!

Merci pour ton aide.
 

Pièces jointes

  • Bureau.zip
    7.1 KB · Affichages: 25
  • Bureau.zip
    7.1 KB · Affichages: 31
  • Bureau.zip
    7.1 KB · Affichages: 26
L

LaurentTBT

Guest
Ben oui, tu as laissé ta déclaration dans la feuille de code de ton userform!
Il faut impérativement qu'elle soit dans un module standart
Donc: insère un module (clic droit dans l'explorateur de projet, puis insérer, puis moduleEt dans ce module, tu mets tout simplement l'unique ligne:
Public impr As Integer (que tu supprimes de ton code du userform, bien sûr!)

Voilà, c'est bête, mais c'est comme ça!

Oups, je vais un peu vite: tu l'avais aussi mise dans ThisWorkbook. enlève là de là aussi.
D'ailleurs, mets toute ta procédure "test" dans le module créé, car il n'a rien à voir avec "ThisWorkbook". En général, les procédures indépendantes, on les mets dans des modules standarts.

@ +
Laurent.
 
P

Pascal76

Guest
Salut

Regardes si cela te va

Tu me tiens au courant


Pascal
 

Pièces jointes

  • test.zip
    9.3 KB · Affichages: 23
  • test.zip
    9.3 KB · Affichages: 28
  • test.zip
    9.3 KB · Affichages: 26
L

LaurentTBT

Guest
Et oui, Pascal

Comme je viens de dire à Jean-Marie sur le chat, ces histoires de portée et de durée de vie des variables, c'est pas évident au début!

Et pour l'histoire de Static dont Jean-Marie a parlé:
Static ne s'utilise qu'au niveau d'une procédure, et permet de conserver la valeur de la variable définie Static lorsqu'on rappelle une autre fois cette procédure. Mais on ne peut utiliser cette variable static dans d'autres procédures, même du même module.

Voilà, j'espère que c'est plus clair.

Bye
Laurent.
 

Discussions similaires

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