Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Déclaration de variable

15 réponses
Avatar
Thierry
Bonjour,

je souhaite donner une valeur à une variable lors de l'ouverture du
classeur. Actuellement cette valeur est testé dans ThisWorkbook dans
Private Sub Workbook_Open(). Je souhaite garder la valeur pour pouvoir la
tester lors de l'execution de macro se trouvant dans un module et déclencer
par un bouton se trouvant dans ma barre d'outils personnel.

Comment déclarer la variable dans ThisWorkbook pour qu'elle puisse être
utilisée plus tard ?

Merci.

--
Ne pas répondre à l'adresse anti-spam.






---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000742-0, 21/05/2007
Analyse le : 21/05/2007 11:46:21
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com

5 réponses

1 2
Avatar
anonymousA
Bonjour,

il doit s'agir de Public toto as string.

Les variables publiques sont accessibles par tous les modules d'un
projet et conservent leurs valeurs tant que:

-le fichier n'est pas fermé
-pour peu que dans le module qui abrite la déclaration Public
*il n'y ait pas d'action dans l'éditeur de VBA
*il n'y ait pas d'erreurs non gérées
*on ne réinitialise pas les variables manuellement ou on ne rajoute
pas quelque chose dans le code dans l'éditeur
*on n'interrompe pas du code par l'instruction End

Pour ce qui concerne l'aide sur Public, il te suffit d'aller dansl'aide
de VBA et de taper Public dans la recherche de l'index. Tu trouveras
tous les éléments à cette section.

A+

Re bonjour Daniel
Si je comprends bien donc en déclarant en tête de module, en reprenant ton
exemple :

Pub Toto as String

Si j'exécute le module qui porte cette déclaration, toute valeur affecté à
cette variable pendant son exécution peut être reprise par un autre code d'un
autre module qui l'utilisera à des fins d'un autre résultat :

Module 1 :
Pub Toto as String
Sub Macro1
Toto = x
déroulement du code
End Sub
Module 2
Sub Macro2
si Toto = x
Déroulement du code
End Sub

Est bien celà ???

Comment regarder l'aide sur "Public" ???

Merci pour tes réponses


Excuses moi d'interférer dans ta réponse mais nous avons du répondre de
manière concomitante
Aucun souci. J'ai souvent constaté que le premier répondant devenait

l'interlocuteur privilégié, voire unique. Je ne vois pourquoi, si ce n'est
que pour ma part, je ne regarde pas les questions déjà répondues (par
flemme).

Moi avec mes maigres connaissances sur le sujet, avec de la bidouille
Toi de manière trés professionnelle avec la réponse qu'il fallait

Je profite de ta supériorité en la matière (c'est l'élève qui s'adresse là
au professeur) pour que tu me donnes quelques compléments sur les
variables
J'apprécie l'ironie, mais je n'ai rien d'un prof ;-))))))))


Manière de les déclarer
En tête d'un module.


Champ d'application
Le classeur (Regarde l'aide sur "public", j'y trouve des choses, je ne

savais pas que ça existait, mais bon, ce n'est pas une référence)

Encore mille excuses et surtout ne m'en veux pas c'est un mauvais concours
de circonstance
Encore une fois, de rien, et ta solution a l'avantage de conserver la valeur

après fermeture et réouverture du classeur.

Daniel








Avatar
MichDenis
Tant qu'à être exhaustif, aussi bien être complet ...;-)

Il te manque :

Lorsque le classeur passe en mode création en utilisant
le boiton de la barre d'outils contrôle à cet effet ou
simplement en dessinant dans une feuille de calcul un
contrôle issu de cette même barre d'outils.

| il n'y ait pas d'action dans l'éditeur de VBA

Il est possible de modifier, ajouter ou enlever "une" ligne de code d'une
procédure déjà existante sans que cela altère le contenu de la variable Public

Par contre, l'ajout d'une procédure ou sa suppression remet
la variable à "" ou 0 selon son type.

C'était presque ça !!!





"anonymousA" a écrit dans le message de news:
4652b60d$0$25917$
Bonjour,

il doit s'agir de Public toto as string.

Les variables publiques sont accessibles par tous les modules d'un
projet et conservent leurs valeurs tant que:

-le fichier n'est pas fermé
-pour peu que dans le module qui abrite la déclaration Public
*il n'y ait pas d'action dans l'éditeur de VBA
*il n'y ait pas d'erreurs non gérées
*on ne réinitialise pas les variables manuellement ou on ne rajoute
pas quelque chose dans le code dans l'éditeur
*on n'interrompe pas du code par l'instruction End

Pour ce qui concerne l'aide sur Public, il te suffit d'aller dansl'aide
de VBA et de taper Public dans la recherche de l'index. Tu trouveras
tous les éléments à cette section.

A+

Re bonjour Daniel
Si je comprends bien donc en déclarant en tête de module, en reprenant ton
exemple :

Pub Toto as String

Si j'exécute le module qui porte cette déclaration, toute valeur affecté à
cette variable pendant son exécution peut être reprise par un autre code d'un
autre module qui l'utilisera à des fins d'un autre résultat :

Module 1 :
Pub Toto as String
Sub Macro1
Toto = x
déroulement du code
End Sub
Module 2
Sub Macro2
si Toto = x
Déroulement du code
End Sub

Est bien celà ???

Comment regarder l'aide sur "Public" ???

Merci pour tes réponses


Excuses moi d'interférer dans ta réponse mais nous avons du répondre de
manière concomitante
Aucun souci. J'ai souvent constaté que le premier répondant devenait

l'interlocuteur privilégié, voire unique. Je ne vois pourquoi, si ce n'est
que pour ma part, je ne regarde pas les questions déjà répondues (par
flemme).

Moi avec mes maigres connaissances sur le sujet, avec de la bidouille
Toi de manière trés professionnelle avec la réponse qu'il fallait

Je profite de ta supériorité en la matière (c'est l'élève qui s'adresse là
au professeur) pour que tu me donnes quelques compléments sur les
variables
J'apprécie l'ironie, mais je n'ai rien d'un prof ;-))))))))


Manière de les déclarer
En tête d'un module.


Champ d'application
Le classeur (Regarde l'aide sur "public", j'y trouve des choses, je ne

savais pas que ça existait, mais bon, ce n'est pas une référence)

Encore mille excuses et surtout ne m'en veux pas c'est un mauvais concours
de circonstance
Encore une fois, de rien, et ta solution a l'avantage de conserver la valeur

après fermeture et réouverture du classeur.

Daniel








Avatar
anonymousA
Quelle complémentarité !!! J'en reviens pas. Ta boursouflure de la tête
n'a pas grossi , j'espère ?
Bientôt , faudra tout le Canada pour la contenir.Mais c'est grand, on a
encore le temps avant que ca atteigne nos côtes. Ca me rassure.

Tant qu'à être exhaustif, aussi bien être complet ...;-)

Il te manque :

Lorsque le classeur passe en mode création en utilisant
le boiton de la barre d'outils contrôle à cet effet ou
simplement en dessinant dans une feuille de calcul un
contrôle issu de cette même barre d'outils.

| il n'y ait pas d'action dans l'éditeur de VBA

Il est possible de modifier, ajouter ou enlever "une" ligne de code d'une
procédure déjà existante sans que cela altère le contenu de la variable Public

Par contre, l'ajout d'une procédure ou sa suppression remet
la variable à "" ou 0 selon son type.

C'était presque ça !!!





"anonymousA" a écrit dans le message de news:
4652b60d$0$25917$
Bonjour,

il doit s'agir de Public toto as string.

Les variables publiques sont accessibles par tous les modules d'un
projet et conservent leurs valeurs tant que:

-le fichier n'est pas fermé
-pour peu que dans le module qui abrite la déclaration Public
*il n'y ait pas d'action dans l'éditeur de VBA
*il n'y ait pas d'erreurs non gérées
*on ne réinitialise pas les variables manuellement ou on ne rajoute
pas quelque chose dans le code dans l'éditeur
*on n'interrompe pas du code par l'instruction End

Pour ce qui concerne l'aide sur Public, il te suffit d'aller dansl'aide
de VBA et de taper Public dans la recherche de l'index. Tu trouveras
tous les éléments à cette section.

A+

Re bonjour Daniel
Si je comprends bien donc en déclarant en tête de module, en reprenant ton
exemple :

Pub Toto as String

Si j'exécute le module qui porte cette déclaration, toute valeur affecté à
cette variable pendant son exécution peut être reprise par un autre code d'un
autre module qui l'utilisera à des fins d'un autre résultat :

Module 1 :
Pub Toto as String
Sub Macro1
Toto = x
déroulement du code
End Sub
Module 2
Sub Macro2
si Toto = x
Déroulement du code
End Sub

Est bien celà ???

Comment regarder l'aide sur "Public" ???

Merci pour tes réponses


Excuses moi d'interférer dans ta réponse mais nous avons du répondre de
manière concomitante
Aucun souci. J'ai souvent constaté que le premier répondant devenait

l'interlocuteur privilégié, voire unique. Je ne vois pourquoi, si ce n'est
que pour ma part, je ne regarde pas les questions déjà répondues (par
flemme).

Moi avec mes maigres connaissances sur le sujet, avec de la bidouille
Toi de manière trés professionnelle avec la réponse qu'il fallait

Je profite de ta supériorité en la matière (c'est l'élève qui s'adresse là
au professeur) pour que tu me donnes quelques compléments sur les
variables
J'apprécie l'ironie, mais je n'ai rien d'un prof ;-))))))))


Manière de les déclarer
En tête d'un module.


Champ d'application
Le classeur (Regarde l'aide sur "public", j'y trouve des choses, je ne

savais pas que ça existait, mais bon, ce n'est pas une référence)

Encore mille excuses et surtout ne m'en veux pas c'est un mauvais concours
de circonstance
Encore une fois, de rien, et ta solution a l'avantage de conserver la valeur

après fermeture et réouverture du classeur.

Daniel












Avatar
Daniel
Bonjour.
Comme le dit AnonymousA, c'est Public au lieu de Pub.
Si tu as regardé les réponses de ce dernier et celles de Denis, tu as vu des
réponses de pro. Auprès desquels je fais figure de rigolo. J'ai même appris
que le Canada, c'était grand ! Moi qui pensais que ce n'était que "quelques
arpents de neige" ;-)))
Cordialement.
Daniel
"FFO" a écrit dans le message de news:

Re bonjour Daniel
Si je comprends bien donc en déclarant en tête de module, en reprenant ton
exemple :

Pub Toto as String

Si j'exécute le module qui porte cette déclaration, toute valeur affecté à
cette variable pendant son exécution peut être reprise par un autre code
d'un
autre module qui l'utilisera à des fins d'un autre résultat :

Module 1 :
Pub Toto as String
Sub Macro1
Toto = x
déroulement du code
End Sub
Module 2
Sub Macro2
si Toto = x
Déroulement du code
End Sub

Est bien celà ???

Comment regarder l'aide sur "Public" ???

Merci pour tes réponses


Excuses moi d'interférer dans ta réponse mais nous avons du répondre de
manière concomitante


Aucun souci. J'ai souvent constaté que le premier répondant devenait
l'interlocuteur privilégié, voire unique. Je ne vois pourquoi, si ce
n'est
que pour ma part, je ne regarde pas les questions déjà répondues (par
flemme).

Moi avec mes maigres connaissances sur le sujet, avec de la bidouille
Toi de manière trés professionnelle avec la réponse qu'il fallait

Je profite de ta supériorité en la matière (c'est l'élève qui s'adresse

au professeur) pour que tu me donnes quelques compléments sur les
variables


J'apprécie l'ironie, mais je n'ai rien d'un prof ;-))))))))

Manière de les déclarer


En tête d'un module.

Champ d'application


Le classeur (Regarde l'aide sur "public", j'y trouve des choses, je ne
savais pas que ça existait, mais bon, ce n'est pas une référence)

Encore mille excuses et surtout ne m'en veux pas c'est un mauvais
concours
de circonstance
Encore une fois, de rien, et ta solution a l'avantage de conserver la

valeur
après fermeture et réouverture du classeur.

Daniel








Avatar
FFO
Merci à toi Daniel !!!
j'ai effectivement essayé avec succés la déclaration de variables Public
Et ce grâce à toi
Donc si tu estimes (et je pense à tord) faire figure de rigolo moi que celà
ne t'en déplaise je détiens trés certainement la Palme
Veut pour preuve ce que tu viens de m'apprendre qui confirme que je suis à
la traine
Mais peut être un jour pourrais je te rattraper
Il est toujours permis de réver !!!!

Au plaisir d'échanger avec toi


Bonjour.
Comme le dit AnonymousA, c'est Public au lieu de Pub.
Si tu as regardé les réponses de ce dernier et celles de Denis, tu as vu des
réponses de pro. Auprès desquels je fais figure de rigolo. J'ai même appris
que le Canada, c'était grand ! Moi qui pensais que ce n'était que "quelques
arpents de neige" ;-)))
Cordialement.
Daniel
"FFO" a écrit dans le message de news:

Re bonjour Daniel
Si je comprends bien donc en déclarant en tête de module, en reprenant ton
exemple :

Pub Toto as String

Si j'exécute le module qui porte cette déclaration, toute valeur affecté à
cette variable pendant son exécution peut être reprise par un autre code
d'un
autre module qui l'utilisera à des fins d'un autre résultat :

Module 1 :
Pub Toto as String
Sub Macro1
Toto = x
déroulement du code
End Sub
Module 2
Sub Macro2
si Toto = x
Déroulement du code
End Sub

Est bien celà ???

Comment regarder l'aide sur "Public" ???

Merci pour tes réponses


Excuses moi d'interférer dans ta réponse mais nous avons du répondre de
manière concomitante


Aucun souci. J'ai souvent constaté que le premier répondant devenait
l'interlocuteur privilégié, voire unique. Je ne vois pourquoi, si ce
n'est
que pour ma part, je ne regarde pas les questions déjà répondues (par
flemme).

Moi avec mes maigres connaissances sur le sujet, avec de la bidouille
Toi de manière trés professionnelle avec la réponse qu'il fallait

Je profite de ta supériorité en la matière (c'est l'élève qui s'adresse

au professeur) pour que tu me donnes quelques compléments sur les
variables


J'apprécie l'ironie, mais je n'ai rien d'un prof ;-))))))))

Manière de les déclarer


En tête d'un module.

Champ d'application


Le classeur (Regarde l'aide sur "public", j'y trouve des choses, je ne
savais pas que ça existait, mais bon, ce n'est pas une référence)

Encore mille excuses et surtout ne m'en veux pas c'est un mauvais
concours
de circonstance
Encore une fois, de rien, et ta solution a l'avantage de conserver la

valeur
après fermeture et réouverture du classeur.

Daniel













1 2