Effacer toutes les variables

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

malabarbe

XLDnaute Occasionnel
Bonsoir,

Je copie des données dans une feuille ou j'applique
une Macro qui me trie, me clase, ou épure les données.

Quand, je refait la mème oppération, certaines variables
contiennes encore des valeurs qui affectent ou perturbent
l'utilisation de la Macro.

Comment faire pour que a chaque nouvel appel de la Mcro,
toutes les variables renseignées par la Macro précendente
soit effaçées ?

Vôtre aide serait la bienvenue.

A vous lire
 
Re : Effacer toutes les variables

Re,

Voici le code que j'ai collé dans un module

Code:
Sub a()
lolo = "riri"
End Sub

Sub b()
MsgBox lolo
End Sub

Je lance la macro a puis la macro b
la Msgbox est vide

Staple1600, toi et les autres participants,
n'avez pas compris mon problème !

On se demande bien si c'est que nous sommes tous idiots... ou si tu n'as pas fourni assez d'informations pour qu'on comprenne...😛
 
Re : Effacer toutes les variables

Loin de de moi cette opinion !

je me suis certainement mal exprimé.

Si, j'applique le code de tototiti2008,
dans le Sub b(),
j'ai : MsgBox lolo = riri

C'est a dire, que mème sans déclarations préalables,
les variables se transmèttrent d'une Macro a l'autre.

Le mystère reste entier !
 
Re : Effacer toutes les variables

Bonjour à tous

Juste pour dire que si Malabarbe avait fourni un fichier, les personnes qui essaient de répondre perdraient un peu moins leur temps.

En effet, il y a eu des demandes de fichiers 🙂.

Mais il faut persévérer. Le fichier c'est le nerf de la geurre sur XLD 😛.
 
Dernière édition:
Re : Effacer toutes les variables

Bonjour Michel, Bonjour le fil,

J'ai compté 5 demandes de fichiers... et malabarbe n'a pas été capable de copier le code que j'ai fourni dans un fichier vide, de nous expliquer comment il appelle les Sub a et b pour qu'on puisse tester de notre côté...
 
Re : Effacer toutes les variables

Re, Bonjour Tototiti

J'ai compté 5 demandes de fichiers... et malabarbe n'a pas été capable de copier le code que j'ai fourni dans un fichier vide, de nous expliquer comment il appelle les Sub a et b pour qu'on puisse tester de notre côté...

Ben oui. Pour éviter les coups de gueules, il faudrait peut-être arrêter de répondre à ce genre de demande si on demande un fichier en toute légitimité et qu'il ne vient pas 😉.

Bien que je trouve la question très intéressante 🙂.
 
Re : Effacer toutes les variables

bonjour tous

pour Jean-Marcel la macro qu'il cherche importance de declarer les variables
tester avec variables & sans facteur temps de 3.5

Code:
Sub TestChrono()
   'Dim x As Integer, y As Integer
   'Dim A As Integer, B As Integer, C As Integer
   'Dim i As Integer, j As Integer
  ' Dim t As Long
    t = Timer
    x = 0
    y = 0
    For i = 1 To 5000
        For j = 1 To 5000
            A = x + y + i
            B = y - x - i
            C = x - y - i
        Next j
    Next i
        MsgBox Timer - t
End Sub

pour le reste les amis Staple & tototiti sont bien patients😉
 
Dernière édition:
Re : Effacer toutes les variables

Re

Sinon l'aide sur la durée de vie des variables:

Durée de vie des variables

Voir aussi Particularités
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.
 
Re : Effacer toutes les variables

Bonjour tout le monde,

Bonsoir tototiti2008 et Jean-Marcel,

Je ne fait aucunes déclarations.

Mes variables, sont déclarées implicitement
dans les traitements.

A bon?!? 😕
Une variable est ou n'est pas déclarée mais surement pas "implicitement".
Dans ton code, tu affectes une valeur à une variable non déclarée.
D'où l'importance de les déclarer...
 
Re : Effacer toutes les variables

Bonjour à tous,

Incroyable, je viens juste de rallumer mon PC
et le problème a disparu sans que je face
quoi que ce soit !!!

Je ne pouvais pas vous envoyer mon source
car il traite des données cryptées sur le
site de ma boite.

Merci à tous d'avoir tenté de m'aider.

Bonne journée

@ +
 
Re : Effacer toutes les variables

Bonjour à tous

Bien que le sujet ici n'était pas: "Faut-il déclarer ses variables (un vaste débat 😕).

Voici quelques exemples pour comprendre la durée de vie des variables.
 

Pièces jointes

Re : Effacer toutes les variables

Bonjour malabarbe, MJ13, skoobi , laetitia90, Jean-Marcel, tototiti2008

... Je ne pouvais pas vous envoyer mon source
car il traite des données cryptées sur le
site de ma boite ...

Tu pouvais envoyer ton code VBA sans les données cryptées 🙄

A charge pour nous autres, de sortir de nos boites crâniennes des strings bidons de test 😉

MJ13: ( 😉 ) malabarbe ne semble pas avoir installé l'aide VBA sur son poste sinon
il aurait suivi Lien supprimé du 18/9 à 21h57
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour