Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

variables publiques

  • Initiateur de la discussion Initiateur de la discussion kevin.remillard
  • 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 !

K

kevin.remillard

Guest
Bonjour

j'ai un petit problème dans un programme vba sous excel 2003.

en effet, quand j'ouvre le fichier un macro workbook_open() s'active, cette macro comprend deux procédures.

les deux font la meme chose elles assigne des noms de workbook a une variables publique.

ces variables publiques sont utilisé dans tous le workbook.

jusque la tout va bien! sauf quand j'active un autre macro et qu'elle contient un processus de correction d'erreur. Cette macro vérifie qu'un colonne de donnée ne contient pas de valeur négative ou de zéro. Quand il en a, la macro avertie l'utilisateur que la colonne en contient et se termine.

le probleme est que si je veux relancer la macro (qui utilise les variable public enoncer plus haut) elle me dit que la variable nest pas valide (type mismatch)
et je dois relancer la macro workbook_open ou reouvrire le fichier pour que ca fonctionne a nouveau, ce qui est embetant.

je voudrais, si possible, que la variable reste assigner a sa valeur de départ peu importe ce qui arrive.

merci

kevin
 
Dernière modification par un modérateur:
Re : variables publiques

Re,

1) Dans le code que tu nous as donné, WB_Name, ne sert à rien
Car tu peux allégrement changer
Code:
Sub Workbook_Open()
WB_name = ThisWorkbook.Name
CName = Workbooks(WB_name).Worksheets("Matrix").Range("B2" )
End Sub
Par
Code:
Sub Workbook_Open()
CName = ThisWorkbook.Worksheets("Matrix").Range("B2" )
End Sub

2) ensuite tu ne pourras pas coder la valeur de CName en dur
à moins que cette valeur ne change jamais 😕

3) en revanche tu peux mettre cette ligne de code
Code:
CName = ThisWorkbook.Worksheets("Matrix").Range("B2" )
Dans une Sub ou une Function que tu appelles dans chaque début de procédure

A+
 
Re : variables publiques

Ah ok...

Disons que le nom de mon workbook de calcul est classeur1 ce que représenterais WB_name. est-ce que j'ai le droit d'écrire

workbook(thisworkbook.name).activate

si oui j'ai une partie du problème de réglé


merci

Kevin
 
Re : variables publiques

t*****k que je suis dans les patattes

je viens de comprendre que je peux juste ecrire thisworkbook.ce que je veu faire j'ai lu trop vite ta réponse Bruno
 
Re : variables publiques

D'après ce que j'ai compris

Public WB_name As String 'nom du fichier de calcul
= classeur contenant le code VBA

Public CName As String 'nom du fichier de données
= classeur ne contenant que les données

Code:
workbook(thisworkbook.name).activate
Pourquoi !?
Si ma compréhension du problème est bonne, alors seulement
Code:
Thisworkbook.Activate

A+
 
Re : variables publiques

c'est ca que j'ai réalisé trop tard 😕

bon cette partie du problème est régler l'autre variable maintenant. cette variable s'appele CName c'est le nom du classeur de donnée. Celui la je n'ai pas le choix d'avoir une variables car mon classeur de calcul s'applique à plusieurs classeurs de données différents donc des noms différents.
 
Re : variables publiques

A déclarer dans un module
Code:
Public CName as String

Une Sub de MaJ des Variables (par exemple), dans un module également
Code:
Sub MaJVar
CName = ThisWorkbook.Worksheets("Matrix").Range("B2" )
End Sub

Au début de toutes les Sub qui parlent de CName, il suffit de mettre alors
Code:
Call MaJVar
Le "Call" est là pour une lecture plus facile, ça marche aussi sans 😉

A+
 
Re : variables publiques

3) en revanche tu peux mettre cette ligne de code
Code:
CName = ThisWorkbook.Worksheets("Matrix").Range("B2" )Dans une Sub ou une Function que tu appelles dans chaque début de procédure

cela revient a faire ce que j'essayais d'éviter devoir l'écrire pour tous les sub...🙁 mais bon si j'ai pas le choix pourquoi pas
 
Re : variables publiques

Désolé,

Mais tu ne l'as mentionné nul part dans ton 1er post 😕

De plus tu n'as pas le choix à part le coder en dur dans une constante

Bonne soirée
 
Re : variables publiques

Pas de problème... je sais que je ne l'ai pas mentionné avant je disais ca surtout pour moi . je te remercie grandement de m'avoir éclairé. au moins je sais ou m'en aller même si je doit y mettre de l'huile de coude.

bonne soirée au plasir de se reparlé.
 
- 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

H
Réponses
2
Affichages
684
Hoooodini
H
O
Réponses
5
Affichages
2 K
C
Réponses
17
Affichages
6 K
Chalafraiz
C
A
Réponses
14
Affichages
5 K
B
Réponses
2
Affichages
3 K
B
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…