Conserver en mémoire une variable dans une macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Re bonjour,

Je suis curieux de voir comment l'on peut résoudre ce problème en apparence fort simple.

Sur ma feuille se trouve une cellule qui, quand on modifie son contenu, déclenche une macro événementielle se trouvant dans le module de la feuille. Lorsque son contenu est différent de "cellule vide", dans une cellule de la feuille apparaît la valeur "0" ; quand le contenu est vide, la valeur "1".
Les valeurs "1" ou "0" sont par la suite récupérées ailleurs dans la même macro (qui gère toutes les cellules de la feuille qui déclenchent un événement quand on modifie leur contenu) et qui évidemment réagira différemment suivant la valeur.
Plutôt que de devoir passer par une cellule sur la feuille, ne pourrait-on pas faire en sorte que la variable "1" ou "0" soit gardée en mémoire dans la macro et ainsi être récupérée ?

Voici, très schématiquement, comment se présente la macro :

If Not Application.Intersect(Target, [UXvsUY2]) Is Nothing Then
.
.
.
If [UXvsUY2].Value = "" Then
[OnlyUX2].Value = 1
Else
[OnlyUX2].Value = 0
End If
.
.
.
End If

"UXvsUY2" étant la cellule qui quand elle est vide --> "1" et non vide --> "0"
"OnlyUX2" étant le nom de la cellule dans la feuille qui récupère les valeurs "1" ou "0".

Une autre cellule (en fait il y en a plusieurs) déclenchant une macro événementielle qui réagira différemment suivant la valeur de la cellule "OnlyUX2" :

If Not Application.Intersect(Target, [NbUXWanted2]) Is Nothing Then
.
.
.
If [OnlyUX2].Value = 0 Then
.
.
.
Else
.
.
.
End If
.
.
.
End If

Fatalement, il faut, je pense, se débrouiller pour que la valeur "1" ou "0" se trouve en début de procédure afin qu'elle soit récupérée lors d'un nouvel événement.
 
Re : Conserver en mémoire une variable dans une macro

Bonjour Magic_Doctor,

Il est possible de garder une valeur en mémoire en passant par une variable dite Public : Instruction utilisée au niveau module pour déclarer des variables publiques et attribuer de l'espace de stockage.

Exemple à placer dans un module normal :

Public Number As Integer

Sub DonnerValeur ()
Range("A1") = 100
Number = Range("A1")
End Sub

Sub RetouverValeur ()
Range("B1") = Number
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
394
Réponses
4
Affichages
284
Réponses
4
Affichages
294
Réponses
5
Affichages
303
Retour