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]