Function n1() As Single '<- verifi que le type soit compatible avec le résultat voulu n1=0 blablabla then n1=i end Function ----------- Function n2() As Single n2=0 blablabla then n2=i end Function ----------- Function n3() As Single n3=0 blablabla then n3=i end Function --------------------------- sub macro_synthese() rés=n1+n2+n3 end sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionFor i = 1 To 6553 If Cells(i, 1).Value "Total_général" Then n1 i Next
tu déclares n1 au sein de la première procédure ===>> elle n'a donc pas de portée générale
Durée de vie des variables
La période pendant laquelle une variable conserve sa valeur correspond à sa durée de vie. La valeur d'une variable peut changer pendant sa durée de vie, mais elle conserve une certaine valeur. Lorsqu'une variable perd sa portée, elle n'a plus de valeur.
Au début d'une procédure, toutes les variables sont initialisées. Une variable numérique est initialisée à zéro, une chaîne de longueur variable est initialisée à une chaîne de longueur nulle (""), et une chaîne de longueur fixe est remplie du caractère représentant le code de caractères ASCII 0, ou Chr(0). Les variables de type Variant prennent initialement la valeur Empty. Chaque élément d'une variable d'un type défini par l'utilisateur est initialisé comme s'il s'agissait d'une variable séparée.
Lorsque vous déclarez une variable objet, de l'espace est réservé en mémoire, mais elle prend la valeur Nothing jusqu'à ce que vous lui affectiez une référence d'objet à l'aide d'une instruction Set.
Si la valeur d'une variable n'est pas modifiée pendant l'exécution de votre code, elle conserve sa valeur initialisée jusqu'à ce qu'elle perde sa portée.
Une variable de niveau procédure déclarée avec l'instruction Dim conserve une valeur jusqu'à la fin de la procédure. Si la procédure appelle d'autres procédures, la variable conserve également sa valeur pendant l'exécution de ces procédures.
Si une variable de niveau procédure est déclarée avec le mot clé Static, elle conserve sa valeur tant que le code est exécuté dans un module. À la fin de l'exécution du code, la variable perd sa portée et sa valeur. Sa durée de vie est identique à celle d'une variable de niveau module.
Une variable de niveau module diffère d'une variable statique. Dans un module standard ou un module de classe, elle conserve sa valeur jusqu'à ce que vous arrêtiez le code. Dans un module de classe, elle conserve sa valeur tant qu'existe une instance de la classe. Les variables de niveau module utilisant des ressources mémoire jusqu'à la réinitialisation de leurs valeurs, il convient de les utiliser uniquement lorsque cela est nécessaire.
Si vous incluez le mot clé Static avant une instruction Sub ou Function, les valeurs de toutes les variables de niveau procédure dans la procédure sont conservées entre les appels.