Afficher un message
Vieux 14/05/2006, 18h46   #2 (permalink)
_Thierry
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 100
Par défaut Re:Emplacement des variables

Bonjour Barbara, le Forum

Non, absolument défendu !

D'ailleurs j'ai pu voir que quelques fois tu as pris en référence des démos que j'avais réalisées, et de par conséquent tu as dû te rendre compte que je déclare toutes mes Variables à l'Intérieur des Subs où des Functions. (Sauf si elles doivent avoir une Portée Publique, bien entendu)

Pourquoi ?

1) Durée de Vie et Espace Mémoire
Leur durée de Vie n'est que celle de l'éxécution du Code, l'Espace mémoire et ainsi libéré.

2) Portée et Interférence
Une déclaration de Variable en Top de Module pour faire bien des Surprises (et des cheveux blanc pendant le développement)...
En effet, la Variable n'étant pas 'Purgée' par le Point 1) si dessus, elle conserve sa valeur, ce qui peut être très désobligeant lors d'une seconde Sub qui retrouvera par Exemple son 'i' as Integer déjà alimenté d'une Valeur de la Boucle Précédante...

Exemple :


Citation:
Dim i AsInteger

Sub Macro1()

For i = 1 To Range('A1000').End(xlUp).Row
* * Cells(i, 2) = Cells(i, 1)
Next

EndSub

Sub Macro2()

MsgBox i

EndSub


Soit c'est volontaire, et on veut récupérer le 'i'... mais bon attention... Si ce n'est pas volontaire, on est 'marron'

Bon Dimanche
[ol]@+Thierry[/ol]
_Thierry est déconnecté   Réponse avec citation