récupération mémoire dans un module VBA *ACH*

Le
alain chatellier
Bonjour,
Voici mon problème :

Quand j'ouvre un fichier Excel 2002 et execute une macro relativement
lourde, la macro s'éxecute à une vitesse raisonnable.
Si je relance la même macro, le temps d'execution peut-être multilplié par 3
ou 4.

Existe t'il dans VBA une fonction à éxécuter avant de sortir des macro qui
permettrais de libérer la place occupée par les variables et ainsi libererait
de la mémoire ?

Cordialement
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
lSteph
Le #4584451
Bonjour,
- la portée d'une variable ordinaire s'arrête à End Sub.
- une variable globale conserve sa valeur durant la session, sauf si
un évennement interrompt comme par exemple
la présence d'une instruction End ou la réinitialisation de code dans
VBE.
-une variable objet (définie avec Set) est conservée en mémoire sauf
si on prévoit
de la libèrer Set myObj =Nothing


lSteph

On 18 juin, 09:27, alain chatellier
Bonjour,
Voici mon problème :

Quand j'ouvre un fichier Excel 2002 et execute une macro relativement
lourde, la macro s'éxecute à une vitesse raisonnable.
Si je relance la même macro, le temps d'execution peut-être multilpli é par 3
ou 4.

Existe t'il dans VBA une fonction à éxécuter avant de sortir des ma cro qui
permettrais de libérer la place occupée par les variables et ainsi li bererait
de la mémoire ?

Cordialement


lSteph
Le #4584431
.. j'oubliais une variable ordinaire est conservée aussi si elle est
définie en haut du module et non dans une sub.

Cf différence entre montext1 et montext2
''''''''''''''''''''''''''''''''''''''''''''
Dim montext1 As String

Sub fixation()
Dim montext2 As String

montext1 = "Niveau module"
montext2 = "Niveau procèdure"

MsgBox montext1
MsgBox montext2
End If
End Sub
Sub test()
On Error Resume Next
If mavar Then
MsgBox montext1
MsgBox montext2
End If
On Error GoTo 0
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

On 18 juin, 11:33, lSteph
Bonjour,
- la portée d'une variable ordinaire s'arrête à End Sub.
- une variable globale conserve sa valeur durant la session, sauf si
un évennement interrompt comme par exemple
la présence d'une instruction End ou la réinitialisation de code dans
VBE.
-une variable objet (définie avec Set) est conservée en mémoire sauf
si on prévoit
de la libèrer Set myObj =Nothing

lSteph

On 18 juin, 09:27, alain chatellier

Bonjour,
Voici mon problème :

Quand j'ouvre un fichier Excel 2002 et execute une macro relativement
lourde, la macro s'éxecute à une vitesse raisonnable.
Si je relance la même macro, le temps d'execution peut-être multilp lié par 3
ou 4.

Existe t'il dans VBA une fonction à éxécuter avant de sortir des macro qui
permettrais de libérer la place occupée par les variables et ainsi libererait
de la mémoire ?

Cordialement




lSteph
Le #4584411
...oupss (j'ai oublié d'enlever un truc par rapport à mon exemple
d'origine)

Dim montext1 As String

Sub fixation()
Dim montext2 As String

montext1 = "Niveau module"
montext2 = "Niveau procèdure"

MsgBox montext1
MsgBox montext2
End If
End Sub

Sub test()
On Error Resume Next

MsgBox montext1
MsgBox montext2

On Error GoTo 0
End Sub


On 18 juin, 11:41, lSteph
.. j'oubliais une variable ordinaire est conservée aussi si elle est
définie en haut du module et non dans une sub.

Cf différence entre montext1 et montext2
''''''''''''''''''''''''''''''''''''''''''''
Dim montext1 As String

Sub fixation()
Dim montext2 As String

montext1 = "Niveau module"
montext2 = "Niveau procèdure"

MsgBox montext1
MsgBox montext2
End If
End Sub
Sub test()
On Error Resume Next
If mavar Then
MsgBox montext1
MsgBox montext2
End If
On Error GoTo 0
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

On 18 juin, 11:33, lSteph
Bonjour,
- la portée d'une variable ordinaire s'arrête à End Sub.
- une variable globale conserve sa valeur durant la session, sauf si
un évennement interrompt comme par exemple
la présence d'une instruction End ou la réinitialisation de code da ns
VBE.
-une variable objet (définie avec Set) est conservée en mémoire s auf
si on prévoit
de la libèrer Set myObj =Nothing

lSteph

On 18 juin, 09:27, alain chatellier

Bonjour,
Voici mon problème :

Quand j'ouvre un fichier Excel 2002 et execute une macro relativement
lourde, la macro s'éxecute à une vitesse raisonnable.
Si je relance la même macro, le temps d'execution peut-être multi lplié par 3
ou 4.

Existe t'il dans VBA une fonction à éxécuter avant de sortir de s macro qui
permettrais de libérer la place occupée par les variables et ains i libererait
de la mémoire ?

Cordialement






Publicité
Poster une réponse
Anonyme