variable globale

Le
PJ
Bonjour,

Je cherche à savoir si la valeur d'une variable peut-être à la fois
utilisée dans un code de useform et lors de l'appel d'un module (fonction sub
par ex), la variable garde la valeur pour se modifier avec la fonction de sub:
En gros, je défini un répertoire = monrep dans mon useform, je le fais
évoluer, puis je lance une procédure de sauvegarde (sub sav) dans laquelle je
voudrais, là encore faire évolueur le monrep précédement défini.

Est-ce possible?
Comment définir monrep?

Merci d'avance
PJ
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
Pounet95
Le #18385271
Bonjour,
AMHA, si tu déclare ta variable dans un module standard, tu la verras de
partout et tu pourras la manipuler comme bon te sembles !

Public MaVariable as String 'par exemple

Pounet95

"PJ" news:
Bonjour,

Je cherche à savoir si la valeur d'une variable peut-être à la fois
utilisée dans un code de useform et lors de l'appel d'un module (fonction
sub
par ex), la variable garde la valeur pour se modifier avec la fonction de
sub:
En gros, je défini un répertoire = monrep dans mon useform, je le fais
évoluer, puis je lance une procédure de sauvegarde (sub sav) dans laquelle
je
voudrais, là encore faire évolueur le monrep précédement défini.

Est-ce possible?
Comment définir monrep?

Merci d'avance
PJ


PJ
Le #18390861
Bonjour et merci,

Donc si j'ai bien compris, je peux affecter à ma variable publique une
valeur dans le code de mon userform et la récupérer dans un module Sub par
exemple?

PJ

"Pounet95" wrote:

Bonjour,
AMHA, si tu déclare ta variable dans un module standard, tu la verras de
partout et tu pourras la manipuler comme bon te sembles !

Public MaVariable as String 'par exemple

Pounet95

"PJ" news:
> Bonjour,
>
> Je cherche à savoir si la valeur d'une variable peut-être à la fois
> utilisée dans un code de useform et lors de l'appel d'un module (fonction
> sub
> par ex), la variable garde la valeur pour se modifier avec la fonction de
> sub:
> En gros, je défini un répertoire = monrep dans mon useform, je le fais
> évoluer, puis je lance une procédure de sauvegarde (sub sav) dans laquelle
> je
> voudrais, là encore faire évolueur le monrep précédement défini.
>
> Est-ce possible?
> Comment définir monrep?
>
> Merci d'avance
> PJ




Pounet95
Le #18392631
Bonjour,
Sauf erreur, je réponds Oui !
Jusqu'à ce jour, toute variable que j'ai pu déclarer "public" dans un module
standard, a la valeur qui lui est affectée au premier appel jusqu'à ce qu'un
autre appel la modifie.
Par contre, ce que je n'ai jamais testé ( et donc vérifié ! ), c'est qu'une
variable déclarée "Public" dans un module standard puisse être déclarée
"locale" dans une procédure et/ou fonction. Je pense que le compilateur
"gueule" un truc du genre "déclaration ambigüe" ou du genre, à vérifier
et/ou confirmer par nos "pros" et surtout amis que sont les "mvp" en titre
ou méritant de l'être.

Pounet95

"PJ" news:
Bonjour et merci,

Donc si j'ai bien compris, je peux affecter à ma variable publique une
valeur dans le code de mon userform et la récupérer dans un module Sub par
exemple?

PJ

"Pounet95" wrote:

Bonjour,
AMHA, si tu déclare ta variable dans un module standard, tu la verras de
partout et tu pourras la manipuler comme bon te sembles !

Public MaVariable as String 'par exemple

Pounet95

"PJ" news:
> Bonjour,
>
> Je cherche à savoir si la valeur d'une variable peut-être à la fois
> utilisée dans un code de useform et lors de l'appel d'un module
> (fonction
> sub
> par ex), la variable garde la valeur pour se modifier avec la fonction
> de
> sub:
> En gros, je défini un répertoire = monrep dans mon useform, je le fais
> évoluer, puis je lance une procédure de sauvegarde (sub sav) dans
> laquelle
> je
> voudrais, là encore faire évolueur le monrep précédement défini.
>
> Est-ce possible?
> Comment définir monrep?
>
> Merci d'avance
> PJ






PJ
Le #18392841
Salut,

Bien vu, cela me met un truc de ce genre...
Tant pis, je vais essayé de contourner le pb.

Merci encore
PJ

"Pounet95" wrote:

Bonjour,
Sauf erreur, je réponds Oui !
Jusqu'à ce jour, toute variable que j'ai pu déclarer "public" dans un module
standard, a la valeur qui lui est affectée au premier appel jusqu'à ce qu'un
autre appel la modifie.
Par contre, ce que je n'ai jamais testé ( et donc vérifié ! ), c'est qu'une
variable déclarée "Public" dans un module standard puisse être déclarée
"locale" dans une procédure et/ou fonction. Je pense que le compilateur
"gueule" un truc du genre "déclaration ambigüe" ou du genre, à vérifier
et/ou confirmer par nos "pros" et surtout amis que sont les "mvp" en titre
ou méritant de l'être.

Pounet95

"PJ" news:
> Bonjour et merci,
>
> Donc si j'ai bien compris, je peux affecter à ma variable publique une
> valeur dans le code de mon userform et la récupérer dans un module Sub par
> exemple?
>
> PJ
>
> "Pounet95" wrote:
>
>> Bonjour,
>> AMHA, si tu déclare ta variable dans un module standard, tu la verras de
>> partout et tu pourras la manipuler comme bon te sembles !
>>
>> Public MaVariable as String 'par exemple
>>
>> Pounet95
>>
>> "PJ" >> news:
>> > Bonjour,
>> >
>> > Je cherche à savoir si la valeur d'une variable peut-être à la fois
>> > utilisée dans un code de useform et lors de l'appel d'un module
>> > (fonction
>> > sub
>> > par ex), la variable garde la valeur pour se modifier avec la fonction
>> > de
>> > sub:
>> > En gros, je défini un répertoire = monrep dans mon useform, je le fais
>> > évoluer, puis je lance une procédure de sauvegarde (sub sav) dans
>> > laquelle
>> > je
>> > voudrais, là encore faire évolueur le monrep précédement défini.
>> >
>> > Est-ce possible?
>> > Comment définir monrep?
>> >
>> > Merci d'avance
>> > PJ
>>
>>




michdenis
Le #18393171
Une variable "Public" ne peut pas être défini au niveau d'une procédure
elle l'est au niveau d'un module standard.

Si tu as utilisé le même nom pour une variable Public et pour une
variable définie localement (au niveau d'une procédure), lors de
l'exécution de la procédure, c'est la variable locale que la procédure
utilisera, elle a la priorité sur la variable Public

Si tu définis une variable Public dans un module de classe que sont
les modules "Feuille", "de classe" , "ThisWorkbook", tu devrais appeler
ta variable plutôt une "PROPRIÉTÉ" dudit module de classe où tu l'as
défini. Pour l'utiliser à l'extérieur de son module, tu dois obligatoirement
faire référence au module de classe à laquelle est appartient.

Dans la Feuil1
Public Toto as String

Sub test()
toto = "Pounet95"
End sub

Dans la feuil2

sub test()
Msgbox Feuil1.toto
end sub


"Pounet95" a écrit dans le message de groupe de discussion :

Bonjour,
Sauf erreur, je réponds Oui !
Jusqu'à ce jour, toute variable que j'ai pu déclarer "public" dans un module
standard, a la valeur qui lui est affectée au premier appel jusqu'à ce qu'un
autre appel la modifie.
Par contre, ce que je n'ai jamais testé ( et donc vérifié ! ), c'est qu'une
variable déclarée "Public" dans un module standard puisse être déclarée
"locale" dans une procédure et/ou fonction. Je pense que le compilateur
"gueule" un truc du genre "déclaration ambigüe" ou du genre, à vérifier
et/ou confirmer par nos "pros" et surtout amis que sont les "mvp" en titre
ou méritant de l'être.

Pounet95

"PJ" news:
Bonjour et merci,

Donc si j'ai bien compris, je peux affecter à ma variable publique une
valeur dans le code de mon userform et la récupérer dans un module Sub par
exemple?

PJ

"Pounet95" wrote:

Bonjour,
AMHA, si tu déclare ta variable dans un module standard, tu la verras de
partout et tu pourras la manipuler comme bon te sembles !

Public MaVariable as String 'par exemple

Pounet95

"PJ" news:
> Bonjour,
>
> Je cherche à savoir si la valeur d'une variable peut-être à la fois
> utilisée dans un code de useform et lors de l'appel d'un module
> (fonction
> sub
> par ex), la variable garde la valeur pour se modifier avec la fonction
> de
> sub:
> En gros, je défini un répertoire = monrep dans mon useform, je le fais
> évoluer, puis je lance une procédure de sauvegarde (sub sav) dans
> laquelle
> je
> voudrais, là encore faire évolueur le monrep précédement défini.
>
> Est-ce possible?
> Comment définir monrep?
>
> Merci d'avance
> PJ






Mousnynao
Le #18393161
Bonjour,

Sous XL2K3, la varaible locale a préséence sur la variable globale
à l'intérieur de la procédure où elle a été déclarer.

ex.:

Option Explicit
'

Public strMessage As String
'


Function CompteNbrClasseur() As Long

CompteNbrClasseur = Workbooks.Count

End Function
'

Sub Test1()

Dim strMessage As String

MsgBox "Avant affectation " & strMessage
strMessage = "mousnynao"
MsgBox "1 - " & strMessage

End Sub
'

Sub Test2()

strMessage = "oanynsuom"
MsgBox strMessage

Call Test1

End Sub
'

mousnynao

"PJ" a écrit :

Salut,

Bien vu, cela me met un truc de ce genre...
Tant pis, je vais essayé de contourner le pb.

Merci encore
PJ

"Pounet95" wrote:

> Bonjour,
> Sauf erreur, je réponds Oui !
> Jusqu'à ce jour, toute variable que j'ai pu déclarer "public" dans un module
> standard, a la valeur qui lui est affectée au premier appel jusqu'à ce qu'un
> autre appel la modifie.
> Par contre, ce que je n'ai jamais testé ( et donc vérifié ! ), c'est qu'une
> variable déclarée "Public" dans un module standard puisse être déclarée
> "locale" dans une procédure et/ou fonction. Je pense que le compilateur
> "gueule" un truc du genre "déclaration ambigüe" ou du genre, à vérifier
> et/ou confirmer par nos "pros" et surtout amis que sont les "mvp" en titre
> ou méritant de l'être.
>
> Pounet95
>
> "PJ" > news:
> > Bonjour et merci,
> >
> > Donc si j'ai bien compris, je peux affecter à ma variable publique une
> > valeur dans le code de mon userform et la récupérer dans un module Sub par
> > exemple?
> >
> > PJ
> >
> > "Pounet95" wrote:
> >
> >> Bonjour,
> >> AMHA, si tu déclare ta variable dans un module standard, tu la verras de
> >> partout et tu pourras la manipuler comme bon te sembles !
> >>
> >> Public MaVariable as String 'par exemple
> >>
> >> Pounet95
> >>
> >> "PJ" > >> news:
> >> > Bonjour,
> >> >
> >> > Je cherche à savoir si la valeur d'une variable peut-être à la fois
> >> > utilisée dans un code de useform et lors de l'appel d'un module
> >> > (fonction
> >> > sub
> >> > par ex), la variable garde la valeur pour se modifier avec la fonction
> >> > de
> >> > sub:
> >> > En gros, je défini un répertoire = monrep dans mon useform, je le fais
> >> > évoluer, puis je lance une procédure de sauvegarde (sub sav) dans
> >> > laquelle
> >> > je
> >> > voudrais, là encore faire évolueur le monrep précédement défini.
> >> >
> >> > Est-ce possible?
> >> > Comment définir monrep?
> >> >
> >> > Merci d'avance
> >> > PJ
> >>
> >>
>
>


Publicité
Poster une réponse
Anonyme