VBA - variable dans une public function

Bonjour,

Je suis en train de travailler un cours avec des fonctions. L'une d'entre elle est PUBLIC et appelle des PRIVATE.

J'ai besoin d'appeler une variable déclarée dans la fonction publique depuis une fonction privée; cependant cela est impossible car Excel affiche le message d'erreur "variable non définie".
J'ai bien essayé en mettant "Public" à la place de "Dim" pour déclaré cette variable dans la fonction publique mais également un message d'erreur survient.

Auriez-vous une idée de comment il serait possible d'invoquer cette variable depuis la fonction privée?

Merci,

Hello SHTOURS,

Normalement, ce que tu nous décris devrait fonctionner.

As-tu bien sorti la variable Public de toutes procédures / fonctions ?

En faisant comme tu décris chez moi cela semble fonctionner

image

A+

4classeur3.xlsm (12.33 Ko)

Bonjour,

Les variables publiques sont déclarées en haut d'un module standard (Module1) feuille, juste après Option Explicit et avant toute macro ou Fonction.

Edit : Hi ! Grillé !

A+

Bonjour Gabin et Galopin,

Merci pour vos retours.

J'ai essayé vos méthodes et je n'ai plus de message d'erreur mais le contenu de la variable n'est pas mémorisé dans la fonction privée.

@Gabin : j'ai essayé avec ton exemple en faisant un call "laPrivee" depuis la fonction publique mais le contenu de la variable partieEntiere n'est pas mémorisé et le MsgBox affiche un message vide ... :/

Il doit y avoir une explication toute bête mais je ne parviens pas à trouver laquelle pour l'instant..

C'est bon j'ai trouvé.

J'avais tout simplement mal lu l'exemple de Gabin et écrit en haut du module "Public as String" au lieu de "Public [nomdeviariable] as String".

Et deuxième soucis j'avais laissé la première déclaration de la variable en question dans la fonction publique.

Problème Résolu; Merci beaucoup :)

J'aurais du nommer ma variable autrement que " a " cela n'aurait peut être pas porté à confusion.

Content que ton problème soit résolu.

Penses à le marquer d'un ✔

A+

Ah et j'aurais pu lire plus attentivement aussi ^^

Une question me vient à l'instant, donc j'en profite.

Avec ma fonction je peux paramétrer la devise depuis le tableur; mais peu importe la valeur que je renseigne, lorsque je regarde la console de variables locales il est affiché 0 pour celle-ci, est-ce une spécificité de VBA ??

Bonjour,

J'imagine que la modification de la devise est réalisée dans une cellule du tableur au niveau du format. Or ceci ne modifie que l'affichage / apparence et pas la valeur. Or VBA travaille sur la valeur.

Ah eh bien si pourtant la valeur est bien prise en compte dans le calcul car le résultat s'affiche correctement. Pourtant le suivi du code semble indiquer le contraire.

Par exemple en débogage pas à pas dans la condition "If Devise = 0", j'ai beau avoir renseigné 1 il va exploré la condition "0"

Et pourtant dans la modification des variables le résultat témoigne du respect de la condition "Devise = 1"

Très curieux.

Rechercher des sujets similaires à "vba variable public function"