Bonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me permettront
de progresser :
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines variables
ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la mémoire,
de remettre les variables (définies par Dim...As...) à zéro à l'issue de
l'exécution d'une procédure qui ne doit s'exécuter qu'une fois ?
Existe-t'il une commande pour remettre en une seule fois à zéro toutes les
variables d'une procédure (sans passer par Set Varxx As Nothing)?
Merci de vos réponses,
Bien cordialement,
Patrick.
Bonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me permettront
de progresser :
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines variables
ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la mémoire,
de remettre les variables (définies par Dim...As...) à zéro à l'issue de
l'exécution d'une procédure qui ne doit s'exécuter qu'une fois ?
Existe-t'il une commande pour remettre en une seule fois à zéro toutes les
variables d'une procédure (sans passer par Set Varxx As Nothing)?
Merci de vos réponses,
Bien cordialement,
Patrick.
Bonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me permettront
de progresser :
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines variables
ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la mémoire,
de remettre les variables (définies par Dim...As...) à zéro à l'issue de
l'exécution d'une procédure qui ne doit s'exécuter qu'une fois ?
Existe-t'il une commande pour remettre en une seule fois à zéro toutes les
variables d'une procédure (sans passer par Set Varxx As Nothing)?
Merci de vos réponses,
Bien cordialement,
Patrick.
Bonjour Patrick,
Pour des petites routines c'est probablement négligeable MAIS:
Même si tu n'utilises pas l'option explicit qui rend obligatoire les
déclarations,
c'est toujours mieux de prendre l'habitude de déclarer et surtout
dans ce cas de typer de façon optimale.
Voir la taille des différents types de variables.String integer,
long, double...
Le variant est sans doute le plus lourd car il accepte tout et n'a pas
besoin d'être précisé avec as.
Typer rend plus fluide l'execution du code.
Cela vaut la peine de remettre à Nothing par exemple les variables
objet.
'lSteph
"Patrick BASTARD" a écrit dans le
message de news:Bonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me
permettront de progresser :
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines
variables ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la
mémoire, de remettre les variables (définies par Dim...As...) à zéro
à l'issue de l'exécution d'une procédure qui ne doit s'exécuter
qu'une fois ? Existe-t'il une commande pour remettre en une seule fois à
zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)? Merci de vos réponses,
Bien cordialement,
Patrick.
Bonjour Patrick,
Pour des petites routines c'est probablement négligeable MAIS:
Même si tu n'utilises pas l'option explicit qui rend obligatoire les
déclarations,
c'est toujours mieux de prendre l'habitude de déclarer et surtout
dans ce cas de typer de façon optimale.
Voir la taille des différents types de variables.String integer,
long, double...
Le variant est sans doute le plus lourd car il accepte tout et n'a pas
besoin d'être précisé avec as.
Typer rend plus fluide l'execution du code.
Cela vaut la peine de remettre à Nothing par exemple les variables
objet.
'lSteph
"Patrick BASTARD" <pasdespambastardp@freepasdespam.fr> a écrit dans le
message de news: ekUU65GAFHA.3664@TK2MSFTNGP14.phx.gbl...
Bonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me
permettront de progresser :
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines
variables ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la
mémoire, de remettre les variables (définies par Dim...As...) à zéro
à l'issue de l'exécution d'une procédure qui ne doit s'exécuter
qu'une fois ? Existe-t'il une commande pour remettre en une seule fois à
zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)? Merci de vos réponses,
Bien cordialement,
Patrick.
Bonjour Patrick,
Pour des petites routines c'est probablement négligeable MAIS:
Même si tu n'utilises pas l'option explicit qui rend obligatoire les
déclarations,
c'est toujours mieux de prendre l'habitude de déclarer et surtout
dans ce cas de typer de façon optimale.
Voir la taille des différents types de variables.String integer,
long, double...
Le variant est sans doute le plus lourd car il accepte tout et n'a pas
besoin d'être précisé avec as.
Typer rend plus fluide l'execution du code.
Cela vaut la peine de remettre à Nothing par exemple les variables
objet.
'lSteph
"Patrick BASTARD" a écrit dans le
message de news:Bonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me
permettront de progresser :
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines
variables ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la
mémoire, de remettre les variables (définies par Dim...As...) à zéro
à l'issue de l'exécution d'une procédure qui ne doit s'exécuter
qu'une fois ? Existe-t'il une commande pour remettre en une seule fois à
zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)? Merci de vos réponses,
Bien cordialement,
Patrick.
Je ne connais pas encore l'instruction Type, mais je vais effectuer des
recherches.
Bonjour, *LSteph*
J'ai lu ton post
avec le plus grand intéret :
Merci pour ce début de réponse.
Je ne connais pas encore l'instruction Type, mais je vais effectuer des
recherches.
Pour la remise à zéro des variables, l'intérêt est-il quantifié ?
Pour la RAZ de l'ensemble des variables, une piste ?
Bien cordialement,
Patrick.Bonjour Patrick,
Pour des petites routines c'est probablement négligeable MAIS:
Même si tu n'utilises pas l'option explicit qui rend obligatoire les
déclarations,
c'est toujours mieux de prendre l'habitude de déclarer et surtout
dans ce cas de typer de façon optimale.
Voir la taille des différents types de variables.String integer,
long, double...
Le variant est sans doute le plus lourd car il accepte tout et n'a pas
besoin d'être précisé avec as.
Typer rend plus fluide l'execution du code.
Cela vaut la peine de remettre à Nothing par exemple les variables
objet.
'lSteph
"Patrick BASTARD" a écrit dans le
message de news:Bonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me
permettront de progresser :
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines
variables ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la
mémoire, de remettre les variables (définies par Dim...As...) à zéro
à l'issue de l'exécution d'une procédure qui ne doit s'exécuter
qu'une fois ? Existe-t'il une commande pour remettre en une seule fois à
zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)? Merci de vos réponses,
Bien cordialement,
Patrick.
Je ne connais pas encore l'instruction Type, mais je vais effectuer des
recherches.
Bonjour, *LSteph*
J'ai lu ton post O5iB3GHAFHA.3616@TK2MSFTNGP11.phx.gbl
avec le plus grand intéret :
Merci pour ce début de réponse.
Je ne connais pas encore l'instruction Type, mais je vais effectuer des
recherches.
Pour la remise à zéro des variables, l'intérêt est-il quantifié ?
Pour la RAZ de l'ensemble des variables, une piste ?
Bien cordialement,
Patrick.
Bonjour Patrick,
Pour des petites routines c'est probablement négligeable MAIS:
Même si tu n'utilises pas l'option explicit qui rend obligatoire les
déclarations,
c'est toujours mieux de prendre l'habitude de déclarer et surtout
dans ce cas de typer de façon optimale.
Voir la taille des différents types de variables.String integer,
long, double...
Le variant est sans doute le plus lourd car il accepte tout et n'a pas
besoin d'être précisé avec as.
Typer rend plus fluide l'execution du code.
Cela vaut la peine de remettre à Nothing par exemple les variables
objet.
'lSteph
"Patrick BASTARD" <pasdespambastardp@freepasdespam.fr> a écrit dans le
message de news: ekUU65GAFHA.3664@TK2MSFTNGP14.phx.gbl...
Bonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me
permettront de progresser :
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines
variables ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la
mémoire, de remettre les variables (définies par Dim...As...) à zéro
à l'issue de l'exécution d'une procédure qui ne doit s'exécuter
qu'une fois ? Existe-t'il une commande pour remettre en une seule fois à
zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)? Merci de vos réponses,
Bien cordialement,
Patrick.
Je ne connais pas encore l'instruction Type, mais je vais effectuer des
recherches.
Bonjour, *LSteph*
J'ai lu ton post
avec le plus grand intéret :
Merci pour ce début de réponse.
Je ne connais pas encore l'instruction Type, mais je vais effectuer des
recherches.
Pour la remise à zéro des variables, l'intérêt est-il quantifié ?
Pour la RAZ de l'ensemble des variables, une piste ?
Bien cordialement,
Patrick.Bonjour Patrick,
Pour des petites routines c'est probablement négligeable MAIS:
Même si tu n'utilises pas l'option explicit qui rend obligatoire les
déclarations,
c'est toujours mieux de prendre l'habitude de déclarer et surtout
dans ce cas de typer de façon optimale.
Voir la taille des différents types de variables.String integer,
long, double...
Le variant est sans doute le plus lourd car il accepte tout et n'a pas
besoin d'être précisé avec as.
Typer rend plus fluide l'execution du code.
Cela vaut la peine de remettre à Nothing par exemple les variables
objet.
'lSteph
"Patrick BASTARD" a écrit dans le
message de news:Bonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me
permettront de progresser :
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines
variables ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la
mémoire, de remettre les variables (définies par Dim...As...) à zéro
à l'issue de l'exécution d'une procédure qui ne doit s'exécuter
qu'une fois ? Existe-t'il une commande pour remettre en une seule fois à
zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)? Merci de vos réponses,
Bien cordialement,
Patrick.
Option Explicit impose la déclaration de variables, mais quand cette
option
est omise, il arrive que le code fonctionne si certaines variables
ne sont
pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Option Explicit impose la déclaration de variables, mais quand cette
option
est omise, il arrive que le code fonctionne si certaines variables
ne sont
pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Option Explicit impose la déclaration de variables, mais quand cette
option
est omise, il arrive que le code fonctionne si certaines variables
ne sont
pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines
variables ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
oui
ne serait-ce que pour éviter des histoires comme cela
accueil = 10
for i = 1 to acculie
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines
variables ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
oui
ne serait-ce que pour éviter des histoires comme cela
accueil = 10
for i = 1 to acculie
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines
variables ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
oui
ne serait-ce que pour éviter des histoires comme cela
accueil = 10
for i = 1 to acculie
Existe-t'il une commande pour remettre en une seule fois à zéro toutes les
variables d'une procédure (sans passer par Set Varxx As Nothing)?
Bonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me permettront de
progresser :
Option Explicit impose la déclaration de variables, mais quand cette option
est omise, il arrive que le code fonctionne si certaines variables ne sont
pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la mémoire, de
remettre les variables (définies par Dim...As...) à zéro à l'issue de
l'exécution d'une procédure qui ne doit s'exécuter qu'une fois ?
Existe-t'il une commande pour remettre en une seule fois à zéro toutes les
variables d'une procédure (sans passer par Set Varxx As Nothing)?
Merci de vos réponses,
Bien cordialement,
Patrick.
Existe-t'il une commande pour remettre en une seule fois à zéro toutes les
variables d'une procédure (sans passer par Set Varxx As Nothing)?
Bonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me permettront de
progresser :
Option Explicit impose la déclaration de variables, mais quand cette option
est omise, il arrive que le code fonctionne si certaines variables ne sont
pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la mémoire, de
remettre les variables (définies par Dim...As...) à zéro à l'issue de
l'exécution d'une procédure qui ne doit s'exécuter qu'une fois ?
Existe-t'il une commande pour remettre en une seule fois à zéro toutes les
variables d'une procédure (sans passer par Set Varxx As Nothing)?
Merci de vos réponses,
Bien cordialement,
Patrick.
Existe-t'il une commande pour remettre en une seule fois à zéro toutes les
variables d'une procédure (sans passer par Set Varxx As Nothing)?
Bonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me permettront de
progresser :
Option Explicit impose la déclaration de variables, mais quand cette option
est omise, il arrive que le code fonctionne si certaines variables ne sont
pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la mémoire, de
remettre les variables (définies par Dim...As...) à zéro à l'issue de
l'exécution d'une procédure qui ne doit s'exécuter qu'une fois ?
Existe-t'il une commande pour remettre en une seule fois à zéro toutes les
variables d'une procédure (sans passer par Set Varxx As Nothing)?
Merci de vos réponses,
Bien cordialement,
Patrick.
Existe-t'il une commande pour remettre en une seule fois à zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)?
End Sub
Existe-t'il une commande pour remettre en une seule fois à zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)?
End Sub
Existe-t'il une commande pour remettre en une seule fois à zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)?
End Sub
Existe-t'il une commande pour remettre en une seule fois à zéro toutes
les
variables d'une procédure (sans passer par Set Varxx As Nothing)?
End Sub
--
GaenoniusBonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me permettront
de progresser :
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines variables
ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la mémoire,
de remettre les variables (définies par Dim...As...) à zéro à l'issue de
l'exécution d'une procédure qui ne doit s'exécuter qu'une fois ?
Existe-t'il une commande pour remettre en une seule fois à zéro toutes
les variables d'une procédure (sans passer par Set Varxx As Nothing)?
Merci de vos réponses,
Bien cordialement,
Patrick.
Existe-t'il une commande pour remettre en une seule fois à zéro toutes
les
variables d'une procédure (sans passer par Set Varxx As Nothing)?
End Sub
--
Gaenonius
Bonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me permettront
de progresser :
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines variables
ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la mémoire,
de remettre les variables (définies par Dim...As...) à zéro à l'issue de
l'exécution d'une procédure qui ne doit s'exécuter qu'une fois ?
Existe-t'il une commande pour remettre en une seule fois à zéro toutes
les variables d'une procédure (sans passer par Set Varxx As Nothing)?
Merci de vos réponses,
Bien cordialement,
Patrick.
Existe-t'il une commande pour remettre en une seule fois à zéro toutes
les
variables d'une procédure (sans passer par Set Varxx As Nothing)?
End Sub
--
GaenoniusBonjour à tous.
Trois questions aujourd'hui, et j'espère que vos réponses me permettront
de progresser :
Option Explicit impose la déclaration de variables, mais quand cette
option est omise, il arrive que le code fonctionne si certaines variables
ne sont pas définies.
Est-il préférable d'utiliser cette option et de déclarer toutes les
variables ?
Dans quels cas est-il nécessaire - utile - , pour libérer de la mémoire,
de remettre les variables (définies par Dim...As...) à zéro à l'issue de
l'exécution d'une procédure qui ne doit s'exécuter qu'une fois ?
Existe-t'il une commande pour remettre en une seule fois à zéro toutes
les variables d'une procédure (sans passer par Set Varxx As Nothing)?
Merci de vos réponses,
Bien cordialement,
Patrick.
Bonsoir, *Gaenonius*
Confirmes-tu que End Sub réinitialise les variables définies dans cette sub
?
Si oui, quelle est l'utilité de Set mavar = Nothing ?
Bien cordialement,
Patrick.Existe-t'il une commande pour remettre en une seule fois à zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)?
End Sub
Bonsoir, *Gaenonius*
Confirmes-tu que End Sub réinitialise les variables définies dans cette sub
?
Si oui, quelle est l'utilité de Set mavar = Nothing ?
Bien cordialement,
Patrick.
Existe-t'il une commande pour remettre en une seule fois à zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)?
End Sub
Bonsoir, *Gaenonius*
Confirmes-tu que End Sub réinitialise les variables définies dans cette sub
?
Si oui, quelle est l'utilité de Set mavar = Nothing ?
Bien cordialement,
Patrick.Existe-t'il une commande pour remettre en une seule fois à zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)?
End Sub
Bonsoir Patrick,
Je ne suis pas sur de ce que j'affirme mais, au risque de me tromper :
Set mavar = Nothing permet de récupérer la mémoire allouée au
variables-objet (destruction de l'instance). Obligatoire à mon avis,
quitte à devoir l'écrire autant de fois que nécessaire car je ne
connais pas de moyen pour les désallouer toutes en une seule
procédure. (L'omission entraine parfois que l'application est
toujours inscrite dans la liste des process toujours actifs alors que
l'on a mis fin à l'application)
Pour les variables-standards (de type String, Integer, Double ...) ,
celles de portée locale(niveau procédure) sont détruites à la fin de
la durée de la procédure. Pour celles de portée de module, module de
classe, ou globale, elles sont détruites à la fin de la durée de vie
de l'endroit de leur déclaration.
Je ne garantis pas que leur desruction permet de récupérer la mémoire
allouée. Je pense que c'est en mettant fin à l'application que l'on
doit récupérer la mémoire allouée.(A demander confirmation)
Pour celles déclarées par Static, réinitialisation suivant leur
portée. Si déclarées dans des modules de feuille, elles conservent
leurs valeurs jusqu'à la fermeture de la feuille.
Si dans un module de classe, jusqu'à la destruction de l'instance.
Si dans un module global, jusqu'à la réinitialisation du module.
Erase Tableau : permet de récupérer la mémoire allouée UNIQUEMENT pour
les tableaux déclarés dynmiquement par Dim Tableau() suivi d'un ReDim
Tableau(Taille). Donc faire un Erase Tableau sur les tableaux
dynamiques me parait autant nécessaire que faire Set mavar = Nothing
Erase Tableau pour un tableau statique déclaré par l'instruction Dim
Tableau(Taille) ne fait que réinitialiser les valeurs du tableau à 0,
s'il s'agit de données numériques, à une chaine de longueur nulle("")
pour les String et Empty si Variant.
Voila ce que je crois être.
PS:
Pour l'Option Explicit, même avis que Clément, donc un fan de l'Option
Explicit ;-)
Pour la question de savoir s'il faut typer ou non les variables, je
suis partant de les typer toutes, car ça te permet d'économiser la
mémoire allouée aux variables.Bonsoir, *Gaenonius*
Confirmes-tu que End Sub réinitialise les variables définies dans
cette sub ?
Si oui, quelle est l'utilité de Set mavar = Nothing ?
Bien cordialement,
Patrick.Existe-t'il une commande pour remettre en une seule fois à zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)?
End Sub
Bonsoir Patrick,
Je ne suis pas sur de ce que j'affirme mais, au risque de me tromper :
Set mavar = Nothing permet de récupérer la mémoire allouée au
variables-objet (destruction de l'instance). Obligatoire à mon avis,
quitte à devoir l'écrire autant de fois que nécessaire car je ne
connais pas de moyen pour les désallouer toutes en une seule
procédure. (L'omission entraine parfois que l'application est
toujours inscrite dans la liste des process toujours actifs alors que
l'on a mis fin à l'application)
Pour les variables-standards (de type String, Integer, Double ...) ,
celles de portée locale(niveau procédure) sont détruites à la fin de
la durée de la procédure. Pour celles de portée de module, module de
classe, ou globale, elles sont détruites à la fin de la durée de vie
de l'endroit de leur déclaration.
Je ne garantis pas que leur desruction permet de récupérer la mémoire
allouée. Je pense que c'est en mettant fin à l'application que l'on
doit récupérer la mémoire allouée.(A demander confirmation)
Pour celles déclarées par Static, réinitialisation suivant leur
portée. Si déclarées dans des modules de feuille, elles conservent
leurs valeurs jusqu'à la fermeture de la feuille.
Si dans un module de classe, jusqu'à la destruction de l'instance.
Si dans un module global, jusqu'à la réinitialisation du module.
Erase Tableau : permet de récupérer la mémoire allouée UNIQUEMENT pour
les tableaux déclarés dynmiquement par Dim Tableau() suivi d'un ReDim
Tableau(Taille). Donc faire un Erase Tableau sur les tableaux
dynamiques me parait autant nécessaire que faire Set mavar = Nothing
Erase Tableau pour un tableau statique déclaré par l'instruction Dim
Tableau(Taille) ne fait que réinitialiser les valeurs du tableau à 0,
s'il s'agit de données numériques, à une chaine de longueur nulle("")
pour les String et Empty si Variant.
Voila ce que je crois être.
PS:
Pour l'Option Explicit, même avis que Clément, donc un fan de l'Option
Explicit ;-)
Pour la question de savoir s'il faut typer ou non les variables, je
suis partant de les typer toutes, car ça te permet d'économiser la
mémoire allouée aux variables.
Bonsoir, *Gaenonius*
Confirmes-tu que End Sub réinitialise les variables définies dans
cette sub ?
Si oui, quelle est l'utilité de Set mavar = Nothing ?
Bien cordialement,
Patrick.
Existe-t'il une commande pour remettre en une seule fois à zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)?
End Sub
Bonsoir Patrick,
Je ne suis pas sur de ce que j'affirme mais, au risque de me tromper :
Set mavar = Nothing permet de récupérer la mémoire allouée au
variables-objet (destruction de l'instance). Obligatoire à mon avis,
quitte à devoir l'écrire autant de fois que nécessaire car je ne
connais pas de moyen pour les désallouer toutes en une seule
procédure. (L'omission entraine parfois que l'application est
toujours inscrite dans la liste des process toujours actifs alors que
l'on a mis fin à l'application)
Pour les variables-standards (de type String, Integer, Double ...) ,
celles de portée locale(niveau procédure) sont détruites à la fin de
la durée de la procédure. Pour celles de portée de module, module de
classe, ou globale, elles sont détruites à la fin de la durée de vie
de l'endroit de leur déclaration.
Je ne garantis pas que leur desruction permet de récupérer la mémoire
allouée. Je pense que c'est en mettant fin à l'application que l'on
doit récupérer la mémoire allouée.(A demander confirmation)
Pour celles déclarées par Static, réinitialisation suivant leur
portée. Si déclarées dans des modules de feuille, elles conservent
leurs valeurs jusqu'à la fermeture de la feuille.
Si dans un module de classe, jusqu'à la destruction de l'instance.
Si dans un module global, jusqu'à la réinitialisation du module.
Erase Tableau : permet de récupérer la mémoire allouée UNIQUEMENT pour
les tableaux déclarés dynmiquement par Dim Tableau() suivi d'un ReDim
Tableau(Taille). Donc faire un Erase Tableau sur les tableaux
dynamiques me parait autant nécessaire que faire Set mavar = Nothing
Erase Tableau pour un tableau statique déclaré par l'instruction Dim
Tableau(Taille) ne fait que réinitialiser les valeurs du tableau à 0,
s'il s'agit de données numériques, à une chaine de longueur nulle("")
pour les String et Empty si Variant.
Voila ce que je crois être.
PS:
Pour l'Option Explicit, même avis que Clément, donc un fan de l'Option
Explicit ;-)
Pour la question de savoir s'il faut typer ou non les variables, je
suis partant de les typer toutes, car ça te permet d'économiser la
mémoire allouée aux variables.Bonsoir, *Gaenonius*
Confirmes-tu que End Sub réinitialise les variables définies dans
cette sub ?
Si oui, quelle est l'utilité de Set mavar = Nothing ?
Bien cordialement,
Patrick.Existe-t'il une commande pour remettre en une seule fois à zéro
toutes les variables d'une procédure (sans passer par Set Varxx As
Nothing)?
End Sub