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..
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.
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
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
re
La déclarationest 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 !
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 !
... 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 !