Emplacement des variables

  • Initiateur de la discussion barbara
  • Date de début
B

barbara

Guest
bonjour le forum,

J'ai une question théorique.
Ne m'essayant au vba que depuis peu de temps, je m'applique à déclarer mes variables au niveau de la procédure (je ne parle pas des variables qui interférent entre différents modules)

mais en regardant parfois certains codes, pas mal de monde déclare ses variables en tête de module ce qui est plus rapide

Ce que jaurais aimé savoir, c'est si cela est neutre au niveau des temps de traitement et des risques d'interférence entre variables.

bonne fin de WE
Barbara
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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 :


Dim i As Integer

Sub Macro1()

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

End Sub

Sub Macro2()

MsgBox i

End Sub



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]
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 957
Membres
103 990
dernier inscrit
lamiadebz