OVH Cloud OVH Cloud

Pb de variable globale

8 réponses
Avatar
Benoit
Salut =E0 tous !!

Je voudrais savoir si il est possible de d=E9clarer une=20
variable "globale" (qu'on peut utiliser dans toutes les=20
feuilles et dans toutes les fonctions), et si il est=20
possible de la conserver et si oui comment?
Merci d'avance =E0 ceux qui me r=E9pondront.

A+

8 réponses

Avatar
CAP2
Salut

tu vas en *zone de déclaration* (tout en haut de ta fenêtre de code) et tu
tapes :

Public toto as Byte (par exemple)

et si il est
possible de la conserver et si oui comment?



Quant à ça, si ce que tu veux c'est qu'une variable ne se décharge pas à la
fin de l'exécution de ton code tu marques :

Static toto as Byte

Ca convient ?

CAP2

"Benoit" a écrit dans le message de
news: 1fdb01c49bbd$5ec1a610$
Salut à tous !!

Je voudrais savoir si il est possible de déclarer une
variable "globale" (qu'on peut utiliser dans toutes les
feuilles et dans toutes les fonctions), et si il est
possible de la conserver et si oui comment?
Merci d'avance à ceux qui me répondront.

A+


Avatar
Benoit
Merci beaucoup de cette aide précieuse.
Je vais essayer ça.
a+

-----Message d'origine-----
Salut

tu vas en *zone de déclaration* (tout en haut de ta
fenêtre de code) et tu

tapes :

Public toto as Byte (par exemple)

et si il est
possible de la conserver et si oui comment?



Quant à ça, si ce que tu veux c'est qu'une variable ne se
décharge pas à la

fin de l'exécution de ton code tu marques :

Static toto as Byte

Ca convient ?

CAP2

"Benoit" a écrit
dans le message de

news: 1fdb01c49bbd$5ec1a610$
Salut à tous !!

Je voudrais savoir si il est possible de déclarer une
variable "globale" (qu'on peut utiliser dans toutes les
feuilles et dans toutes les fonctions), et si il est
possible de la conserver et si oui comment?
Merci d'avance à ceux qui me répondront.

A+


.





Avatar
Benoit
Je viens d'essayer ce que tu m'as dit mais il refuse la
déclaration statique en dehors d'une procédure.
Au départ j'avais déclaré ma variable en Public et en
dehors des procédures mais la valeur de cette variable se
perd dès que j'exécute une fonction.
Comment faire? Tu n'aurais pas une autre solution pour
conserver ma valeur de variable?
Merci

-----Message d'origine-----
Salut

tu vas en *zone de déclaration* (tout en haut de ta
fenêtre de code) et tu

tapes :

Public toto as Byte (par exemple)

et si il est
possible de la conserver et si oui comment?



Quant à ça, si ce que tu veux c'est qu'une variable ne se
décharge pas à la

fin de l'exécution de ton code tu marques :

Static toto as Byte

Ca convient ?

CAP2

"Benoit" a écrit
dans le message de

news: 1fdb01c49bbd$5ec1a610$
Salut à tous !!

Je voudrais savoir si il est possible de déclarer une
variable "globale" (qu'on peut utiliser dans toutes les
feuilles et dans toutes les fonctions), et si il est
possible de la conserver et si oui comment?
Merci d'avance à ceux qui me répondront.

A+


.





Avatar
CAP2
Aïïïïeee !!

J'avais pas compris ça.
Effectivement Static ne peut être utilisé que pour permettre à une variable
de garder sa valeur après la fin de l'exécution d'une procédure.
Maintenant, pour déclarer une variable publique et statique, je vais devoir
appeler la horde sauvage des MVP à l'aide...

Au fait quelle est ta problématique pour vouloir mettre en place ce genre de
déclaration ?
Y'a peut-être un moyende contourner...

CAP2

"Benoit" a écrit dans le message de
news: 204601c49bc3$a16a9020$
Je viens d'essayer ce que tu m'as dit mais il refuse la
déclaration statique en dehors d'une procédure.
Au départ j'avais déclaré ma variable en Public et en
dehors des procédures mais la valeur de cette variable se
perd dès que j'exécute une fonction.
Comment faire? Tu n'aurais pas une autre solution pour
conserver ma valeur de variable?
Merci

-----Message d'origine-----
Salut

tu vas en *zone de déclaration* (tout en haut de ta
fenêtre de code) et tu

tapes :

Public toto as Byte (par exemple)

et si il est
possible de la conserver et si oui comment?



Quant à ça, si ce que tu veux c'est qu'une variable ne se
décharge pas à la

fin de l'exécution de ton code tu marques :

Static toto as Byte

Ca convient ?

CAP2

"Benoit" a écrit
dans le message de

news: 1fdb01c49bbd$5ec1a610$
Salut à tous !!

Je voudrais savoir si il est possible de déclarer une
variable "globale" (qu'on peut utiliser dans toutes les
feuilles et dans toutes les fonctions), et si il est
possible de la conserver et si oui comment?
Merci d'avance à ceux qui me répondront.

A+


.





Avatar
papou
Bonjour
Peut-être, en fonction de ce que tu veux faire, que la déclaration d'une
constante en 1ère ligne de module te conviendrait mieux, et dans ce cas tu
pourras utiliser ta constante à l'intérieur de chacune de tes procédures ou
fonctions dans le classeur :
Const Monchiffre As Long = 1
Const Montexte As String = "Benoit"

Cordialement
Pascal

"Benoit" a écrit dans le message de
news:204601c49bc3$a16a9020$
Je viens d'essayer ce que tu m'as dit mais il refuse la
déclaration statique en dehors d'une procédure.
Au départ j'avais déclaré ma variable en Public et en
dehors des procédures mais la valeur de cette variable se
perd dès que j'exécute une fonction.
Comment faire? Tu n'aurais pas une autre solution pour
conserver ma valeur de variable?
Merci

-----Message d'origine-----
Salut

tu vas en *zone de déclaration* (tout en haut de ta
fenêtre de code) et tu

tapes :

Public toto as Byte (par exemple)

et si il est
possible de la conserver et si oui comment?



Quant à ça, si ce que tu veux c'est qu'une variable ne se
décharge pas à la

fin de l'exécution de ton code tu marques :

Static toto as Byte

Ca convient ?

CAP2

"Benoit" a écrit
dans le message de

news: 1fdb01c49bbd$5ec1a610$
Salut à tous !!

Je voudrais savoir si il est possible de déclarer une
variable "globale" (qu'on peut utiliser dans toutes les
feuilles et dans toutes les fonctions), et si il est
possible de la conserver et si oui comment?
Merci d'avance à ceux qui me répondront.

A+


.





Avatar
Benoit
En fait, je voudrais arriver à trouver un numéro de ligne
(pour ça j'ai une formule : SOTLine = Cells.Find("TITLE",
[A1], , , , xlNext).Row + 1 ) dès le démarrage de l'appli
excel; je voudrais aussi pouvoir conserver la valeur de
cette variable et je voudrais pouvoir l'utiliser dans
d'autres feuilles (de la même appli) et dans d'autres
modules(sub et function).
Le problème c'est que ma variable prend "0" dès que j'ai
lancé une procédure.
Voilà, je sais pas si j'ai été très clair mais si tu as
pas bien compris, n'hésite pas à me redemander.
Merci d'avance.

a+
Benoit

-----Message d'origine-----
Aïïïïeee !!

J'avais pas compris ça.
Effectivement Static ne peut être utilisé que pour
permettre à une variable

de garder sa valeur après la fin de l'exécution d'une
procédure.

Maintenant, pour déclarer une variable publique et
statique, je vais devoir

appeler la horde sauvage des MVP à l'aide...

Au fait quelle est ta problématique pour vouloir mettre
en place ce genre de

déclaration ?
Y'a peut-être un moyende contourner...

CAP2

"Benoit" a écrit
dans le message de

news: 204601c49bc3$a16a9020$
Je viens d'essayer ce que tu m'as dit mais il refuse la
déclaration statique en dehors d'une procédure.
Au départ j'avais déclaré ma variable en Public et en
dehors des procédures mais la valeur de cette variable se
perd dès que j'exécute une fonction.
Comment faire? Tu n'aurais pas une autre solution pour
conserver ma valeur de variable?
Merci

-----Message d'origine-----
Salut

tu vas en *zone de déclaration* (tout en haut de ta
fenêtre de code) et tu

tapes :

Public toto as Byte (par exemple)

et si il est
possible de la conserver et si oui comment?



Quant à ça, si ce que tu veux c'est qu'une variable ne se
décharge pas à la

fin de l'exécution de ton code tu marques :

Static toto as Byte

Ca convient ?

CAP2

"Benoit" a écrit
dans le message de

news: 1fdb01c49bbd$5ec1a610$
Salut à tous !!

Je voudrais savoir si il est possible de déclarer une
variable "globale" (qu'on peut utiliser dans toutes les
feuilles et dans toutes les fonctions), et si il est
possible de la conserver et si oui comment?
Merci d'avance à ceux qui me répondront.

A+


.




.






Avatar
Benoit
Salut!!
Effectivement, cette valeur est constante mais je ne peux
pas la fixer manuellement. Je suis obligé de faire une
recherche du numéro de ligne qui contient ma
valeur "TITLE". Ensuite ce numéro de ligne correspondra à
ma variable.
J'ai bien pensé à mettre une constante mais je ne sais pas
si c'est possible d'affecter une valeur à une constante
dès le démarrage de l'appli. Tu dois savoir? J'espère que
tu as la réponse car ça m'aiderais bien.
En attendant ta réponse, je vais essayer ta solution et on
verra.
Merci en tout cas.

a+
benoit

-----Message d'origine-----
Bonjour
Peut-être, en fonction de ce que tu veux faire, que la
déclaration d'une

constante en 1ère ligne de module te conviendrait mieux,
et dans ce cas tu

pourras utiliser ta constante à l'intérieur de chacune de
tes procédures ou

fonctions dans le classeur :
Const Monchiffre As Long = 1
Const Montexte As String = "Benoit"

Cordialement
Pascal

"Benoit" a écrit
dans le message de

news:204601c49bc3$a16a9020$
Je viens d'essayer ce que tu m'as dit mais il refuse la
déclaration statique en dehors d'une procédure.
Au départ j'avais déclaré ma variable en Public et en
dehors des procédures mais la valeur de cette variable se
perd dès que j'exécute une fonction.
Comment faire? Tu n'aurais pas une autre solution pour
conserver ma valeur de variable?
Merci

-----Message d'origine-----
Salut

tu vas en *zone de déclaration* (tout en haut de ta
fenêtre de code) et tu

tapes :

Public toto as Byte (par exemple)

et si il est
possible de la conserver et si oui comment?



Quant à ça, si ce que tu veux c'est qu'une variable ne se
décharge pas à la

fin de l'exécution de ton code tu marques :

Static toto as Byte

Ca convient ?

CAP2

"Benoit" a écrit
dans le message de

news: 1fdb01c49bbd$5ec1a610$
Salut à tous !!

Je voudrais savoir si il est possible de déclarer une
variable "globale" (qu'on peut utiliser dans toutes les
feuilles et dans toutes les fonctions), et si il est
possible de la conserver et si oui comment?
Merci d'avance à ceux qui me répondront.

A+


.




.






Avatar
CAP2
J'ose à peine te le proposer (je vais me faire lapider par les puristes,
mais je me lance) :

ce que tu peux faire, c'est placer le résultat de ton code de recherche dans
une cellule d'une colonne de l'une de tes feuilles (colonne que tu peux
masquer si tu le veux...) et ensuite faire référence dans chaque de module
ou chaque fonction à cette cellule en redéclarant une variable :
Exemple avec ton numéro de ligne placé en cellule AB1 :

Dim toto as ????

toto=[AB1]

C'est affreux, mais je pense bien que ça peut résoudre ton pb.

Bon, voilà, j'ai plus qu'à attendre des coups de fouet ;o)))

Tiens-moi au courant

CAP2