Problème avec "Public Const"

  • Initiateur de la discussion Initiateur de la discussion tiboo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

tiboo

Guest
Bonjour,

Je voudrais affecter la valeur d'une cellule d'une autre feuille (contact!A2)
à la variable CONTACT

J'ai essayé ça :

VB:
Public Const CONTACT As String = contact!A2

J'ai l'erreur "Variable non définie"
Comment dois-je la définir ?

Merci d'avance,

tiboo
 
Re : Problème avec "Public Const"

Bonjour,

Merci pour cette réponse rapide.
J'ai essayé ce code :

VB:
Public Const CONTACT As String = ThisWorkbook.Sheets("contact").Range("A2").Value

J'ai l'erreur "Constante requise"
J'ai mal utilisé votre code ?
 
Re : Problème avec "Public Const"

Bonjour Dranreb,

J'ai testé votre code.
J'ai l'erreur "Instruction incorrecte à l'extérieur d'une procédure"
Est-ce que je dois absolument travailler dans une procédure ?
Je voudrais que "CONTACT" puisse être lue par toutes les sub de mon module..

Merci d'avance.
 
Re : Problème avec "Public Const"

L'affectation doit être faite dans une procédure
Si votre variable CONTACT n'a pas à être utilisée dans d'autres modules, Dim suffit, inutile de la déclarer Public. Mais il faut la déclarer en tête du module si elle doit être connue de toutes ses procédures.
À+
 
Re : Problème avec "Public Const"

Bonjour Tiboo, Michel Dranreb
déjà si tu utilisais un nom de variable différent d'un nom de feuille je pense que ce serait pas idiot, maintenant pour l'utilisation dans tous le module si tu as définis comme Dranreb t'a dit Public CONTACT As String c'est le cas
si bien sur tu es dans un module, pas dans une feuille!
a+
papou

 
Re : Problème avec "Public Const"

Bonjour tiboo, le fil,

Si vous voulez utiliser l'instruction Const, l'expression qui définie la variable doit être littérale.

Alors OK, ce peut être une adresse de cellule... Il faudra ensuite l'utiliser avec Range comme suit :

Code:
Public Const CONTACT As String = "contact!A2"

Sub Test()
MsgBox Range(CONTACT) 'exemple pour tester
End Sub
Tout cela dans un Module.

L'inconvénient est que si l'on déplace la cellule (par insertion ou suppression de lignes ou colonnes), la variable CONTACT conservera la même adresse...

Vous pouvez alors nommer la cellule MaCellule (menu Insertion-Nom).

Et vous écrirez :

Code:
Public Const CONTACT As String = "MaCellule"

Sub Test()
MsgBox Range(CONTACT) 'exemple pour tester
End Sub
A+
 
Dernière édition:
Re : Problème avec "Public Const"

Bonjour Paritec,

Merci de votre réponse.
Je pense que je me suis mal exprimé et que je suis parti sur une mauvaise solution.
Ce que j'essaie de faire, c'est de récupérer la valeur d'une cellule et l'affecter à une variable.
Ensuite, cette variable sera appelée dans différent Sub.
Quelle est la meilleure solution ?
 
Re : Problème avec "Public Const"

Re,

Bien entendu, le 2ème exemple est un cas d'école...

Car si la cellule est nommée, il est tellement plus simple d'écrire :

Code:
Sub Test()
MsgBox [MaCellule] 'exemple pour tester
End Sub
Edit : je crains que tiboo n'ait pas vu mon post #8...

A+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
258
Retour