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

Garder une variable en mémoire

Calvus

XLDnaute Barbatruc
Bonsoir le forum,

Exemple : j'ai une macro qui s'exécute selon plusieurs conditions.
Les données varient, mais pas la mise en forme.
Je crée donc un macro pour cette mise en forme, mais selon une variable, pour éviter la répétition du code.

Donc :

Sub Machin()
xxx
xxx
set var = xxx
xxx
Call Truc
xxx
End Sub

Sub Truc ()
[A1]=var
xxx
End Sub


Or problème, en appelant une autre macro, ma variable a disparu....

Y a t'il un moyen pour la garder en mémoire pendant tout le processus ?

Merci

Edit : Avec Sub Recherche (Truc) peut être ?
Je vais essayer..
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re : Garder une variable en mémoire

salut

c'est mieux quand on déclare les variables (mais pas n'importe où ) !

Code:
Dim var 'As Variant sous entendu
Sub Machin()
xxx
xxx
set var = xxx
xxx
Call Truc
xxx
End Sub

Sub Truc ()
[A1]=var
xxx
End Sub

c'est le cas où les macros sont dans le même Module !
 

Lone-wolf

XLDnaute Barbatruc
Re : Garder une variable en mémoire

Bonsoir Calvus,

j'éspère de pas dire de bétises. Peut-être en la déclarant dans le module standard Public Const var as Long = 3 (ColorIndex) si c'est ça.
Sinon dans la Sub Static var.


A+
 
Dernière édition:

Calvus

XLDnaute Barbatruc
Re : Garder une variable en mémoire

Bonsoir à tous les deux !

Lone wolf, tu m'épates par ton changement d'apparence permanent. Un vrai séducteur !

Mon Edit fonctionne !!! Miracle !!!

Si, est ce à dire que je n'en ai pas besoin si je déclare mes variables ? J'avoue ne pas l'avoir fait tant que j'étais en période de test de mes codes. Ce doit être une erreur certainement.
Je vais essayer ça tout de suite.
Je confirme que tout est dans le même module, à savoir le code de la feuille.

Lone wolf, je ne saisis pas tout, pour pas dire rien

A bientôt
 

Lone-wolf

XLDnaute Barbatruc
Re : Garder une variable en mémoire

Re Calvus

dans un module standard tu fait cette déclaration : Public Const var As Long = 3; ensuite, ici sans les SUB

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Range("b3").Interior.ColorIndex = var
End Sub


Oubien

Sub Test()
Static var
var = 3
Feuil1.Range("b3").Interior.ColorIndex = var
end sub


A+
 
Dernière édition:

Calvus

XLDnaute Barbatruc
Re : Garder une variable en mémoire

Re,

Ça ne fonctionne pas, ou du moins je ne sais pas m'y prendre je suppose.
Mais ma 1ère solution fonctionne bien, alors je vais garder pour l'instant.

Merci du conseil en tout cas.Je vais tenter d'étudier de plus près pour vois ce qui ne va pas.

Merci
A+
 

Si...

XLDnaute Barbatruc
Re : Garder une variable en mémoire

re

La déclaration
est obligatoire avec ma proposition.
Mais on peut transmettre la variable avec un code du genre (comme une fonction mais pas une fonction) :
Code:
Sub Machin()
  xxx
 var = 1000 
  xxx
  Quoi var ‘transport de la valeur de la variable dans truc
  xxx
End Sub
Sub Quoi (truc)
  [A1] = truc 
    xxx
End Sub

On peut transmettre plusieurs variables mais l’appel doit se faire par Call
Code:
Sub Machin()
   xxx
  var1 = 1000 : var2 = " euro"
  xxx
  Call Double (var1, var2)  
End Sub

Sub Double (truc1 as Byte, truc2 as String)
   [A1] = truc1 : [B1] = truc2
    xxx
End Sub

Précision pour la proposition de Lone-wolf (non, tu n'es pas transparent à mes yeux ) : quand les macros ne sont pas dans le même Module, il faut déclarer la variable en Public dans un Module standard !
 

Calvus

XLDnaute Barbatruc
Re : Garder une variable en mémoire

Re,

Je savais bien en écrivant à propos des déclarations, que 00 allait me tomber dessus ! Elle me piste pour que je déclare !

C'est bien une Aie là tôt là de la déclaration....d'impôts, je sais pas... Je ne parle que vba hein !

Donc vous noterez qu'elle m'a encore mis une taloche au passage, l'air de rien...

L"option explicit, c'est une inside joke entre nous

A+
 

Calvus

XLDnaute Barbatruc
Re : Garder une variable en mémoire

Re,

Tout le monde s'en fout, et c'est bien normal, mais j'aimerais tout de même signaler à Madame Double Zéro que j'utilise option explicit depuis 1 mois ! Je ne pouvais pas avouer hier qu'elle m'avait eu à l'usure !
 

DoubleZero

XLDnaute Barbatruc
Re : Garder une variable en mémoire

Bonjour à toutes et à tous,

... j'aimerais tout de même signaler à Madame Double Zéro que j'utilise option explicit depuis 1 mois ! Je ne pouvais pas avouer hier qu'elle m'avait eu à l'usure !


... après ça, je n'arrive même plus à garder le nom de ma femme en mémoire!! ...


C'est tnteux !

A bientôt
 

Discussions similaires

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