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

Variables publiques invisibles en VBA

2 réponses
Avatar
JLH 974
Re-bonjour à tous
(2 messages par jour je fais fort)
J'ai un petit souci concernant les variables pourtant déclarées "Public"
lors des points d'arrêts de débuggage.
Je m'explique : j'utilise plusieurs feuilles modules pour mes programmes
mais je ne déclare mes variables que sur une feuille pour regrouper toutes
mes déclarations et vérifier ainsi plus commodément les noms que j'utilise.
Le problème c'est que lorsque j'utilise un point d'arrêt dans une procédure
d'une autre feuille module, dans la fenêtre déboggage, je n'ai accès qu'aux
variables qui sont déclarées dans la feuille module où s'est produit le
point d'arrêt.
Est-ce un "bug" d'une version périmée ou un paramétrage défectueux?

Jean-Luc HOAREAU

2 réponses

Avatar
Daniel.C
Bonjour.
Si utilises la variable publique dans ta macro, positionne le curseur sur la
variable pour en obtenir la valeur.
Cordialement.
Daniel
"JLH 974" a écrit dans le message de
news: OCXs%23%
Re-bonjour à tous
(2 messages par jour je fais fort)
J'ai un petit souci concernant les variables pourtant déclarées "Public"
lors des points d'arrêts de débuggage.
Je m'explique : j'utilise plusieurs feuilles modules pour mes programmes
mais je ne déclare mes variables que sur une feuille pour regrouper toutes
mes déclarations et vérifier ainsi plus commodément les noms que
j'utilise.
Le problème c'est que lorsque j'utilise un point d'arrêt dans une
procédure d'une autre feuille module, dans la fenêtre déboggage, je n'ai
accès qu'aux variables qui sont déclarées dans la feuille module où s'est
produit le point d'arrêt.
Est-ce un "bug" d'une version périmée ou un paramétrage défectueux?

Jean-Luc HOAREAU




Avatar
MichDenis
Si tu veux utiliser une variable "Public", elle doit obligatoirement
être déclarée dans un MODULE STANDARD.

Lorsque tu déclares ce que tu appelles une variable Public dans un module
feuille, ce n'est pas à proprement parler une variable mais une propriété
de la classe objet "Feuil" en occurrence une propriété que tu ajoutes
à l'objet qui est défini par la propriété Name du module feuille où la
déclaration est faite.

Pour afficher la valeur dans la fenêtre exécuter peu importe où tu te situes
dans le code, tu dois faire référence à l'objet devant la propriété en utilisant
la propriété Name du module où la "Propriété" est définie.

Si la propriété est définie dans le module "Feuil1" comme dans
Public Toto as String

Utilise ce code pour afficher sa valeur peu importe où tu te trouves
dans le projet VBA de ton classeur

Debug.Print Feuil1.Toto

Et si tu as besoin d'une preuve supplémentaire que "Toto" est véritablement
une propriété et non une variable .... lorsque tu types Feuil1. , immédiatement
après le point, dans la liste déroulante proprosée, tu as la propriété "Toto"
avec un icône "propriété" à ses côtés.

De toute manière, peu importe où tu es dans le code, (sauf si tu es dans le même
module feuille où tu as déclarée ta propriété) tu devrais utilisé le nom de l'objet
feuille pour identifier la propriété de celle-ci ... si tu utilises "Toto" toute seule,
sa valeur sera nulle.