Constantes qui ne se chargent pas

Bonjour,

Je déclare deux constantes dans une feuille de calcul ("Feuil 1" dans Microsoft Excel Objects) :

Const TOP As Byte = 5
Const BAS As Byte = 26

Je les ai déclarées en en-tête, bien avant toutes les procédures SUB et PRIVATE SUB de ma feuille.

Sur cette feuille, j'ai ajouté un CommandButton qui ouvre un UserForm.

Dans ce UserForm j'ai besoin d'utiliser les constantes TOP et BAS déclarées avant dans la Feuille 1.

Malheureusement La constante TOP renvoie la valeur 150 dans le UserForm (je ne sais pas pourquoi cette valeur, sortie de nulle part !?...) et la constante BAS renvoie une valeur nulle ou plutôt ""

Comment faire pour que ces 2 constantes soient utilisables et fixes dans toutes les procédures, tous les modules, tous les UserForm quels qu'ils soient.

J'ai essayé en mettant PUBLIC devant TOP et BAS :

Public TOP As Byte
Public BAS As Byte

Mais je ne sais pas où déclarer les valeurs TOP et BAS ensuite ... et surtout elles ne sont pus déclarées comme constantes.

Bref ... merci de votre aide, car je n'arrive pas à trouver de solutions.

Bonjour

il faut faire un mixte des deux.. avant les sub,.... et de préférence dans un module... et pas une feuille.. (du moins c'est mon habitude)

Public Const TOP As Byte = 5
Public Const BAS As Byte = 26

https://learn.microsoft.com/en-us/office/vba/language/concepts/getting-started/declaring-constants

Fred

Merci pour cette réponse .... mais ça ne marche toujours pas.

J'ai en effet ajouté ces 2 lignes en en-tête du Module 1 (donc hors feuille) :

Public Const TOP As Byte = 5
Public Const BAS As Byte = 26

A l'ouverture du UserForm depuis le CommandButton situé sur la Feuille 1, la constante TOP appelée depuis le UF me renvoie toujours la valeur 150 (pourquoi cette valeur, je ne sais toujours pas ....) et la constante BAS est égale à 26, donc ça c'est bon.

Quand les 2 constantes TOP et BAS sont utilisées dans des SUB sur la feuille1, aucun problème, elles sont bien égales à 5 et 26, mais dans le UF TOP devient 150 (???) et BAS reste à 26.

Une explication possible ??

utiliser l'outil recherche sur les modules et les feuilles pour trouver tous les TOP initialisés fans toutes les procédures et n'en garder qu'un !

BOnjour

comme l'évoque FINDRH

Il est probable que quelque part dans le code il y a une nouvelle affectation de ces deux variables... a chercher donc et ne garder qu'une seule déclaration/affectation.

Fred

Rechercher des sujets similaires à "constantes qui chargent pas"