|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2010 Messages : 39 ![]() |
Bonjour,
Je suis en train de réaliser une feuille VBA, pour laquelle j'ai une multitude de fonctions. Celles-ci font appellent à des constantes présentes dans des cellules du tableur. Puis-je définir ces constantes une bonne fois pour toutes, ou suis-je obligé de rappeler pour chaque fonction à quelle cellule correspondent ces constantes ? J'ai essayé de les définir avant les codes des fonctions, mais cela ne fonctionne pas... Dois-je mettre toutes ces fonctions dans un Sub() (qui ferait alors appel à un bouton) ? Merci pour votre réponse, j'espère avoir assez détaillé ma question. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() J-Pierre CatherineConception Calcul Inscription : juillet 2007 Messages : 659 ![]() |
Bonjour
Peut tu nous mettre un bout de ton code je pense qu'avec des variables correctement positionnées cela devrait fonctionner bon courage
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci ![]() ---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
|
|
|
00
|
|
|
#3 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 899 ![]() |
Bonjour,
Nous sommes d'accord qu'une constante ne peux changer de valeur en cours d'application Elles se déclarent dans un module (standard ou de classe) Code :
Global Const MaConstante As Integer = 12
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|
|
|
00
|
|
|
#4 |
![]() ![]() |
Bonjour
Si tes constantes doivent être dans des cellules d'une feuille, il faut passer par des variables et remplir celle-ci avec les valeurs des cellules dans une routine sur l'évènement Open du classeur. Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#5 | |||
|
Invité de passage
![]() Inscription : mars 2010 Messages : 39 ![]() |
Par exemple, j'ai ça :
Code :
Citation:
|
|||
|
|
00
|
|
|
#6 |
![]() ![]() |
Re
Non, tu déclares tes variables comme Public dans un module, et ensuite sur l'évènement Open de ton classeur tu affectes les données des cellules à tes variables une fois. Ensuite tu peux utiliser les variables n'importe où. Cependant si ces constantes sont vraiment des constantes (c'est à dire que la valeur ne bougera jamais), alors il faut déclarer directement des constantes dans le code : Utiliser les variables en VBA Excel Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#7 | ||||||
|
Membre Expert
![]() Hervé SilveInscription : août 2010 Messages : 773 ![]() |
Bonjour tout le monde,
Normalement avec une fonction, le mieux est de passer les valeurs en argument car si tu défini tes "constantes" à un moment donné (ouverture du classeur, par exemple) et puis qu'une ou plusieurs valeurs doivent changées (dans tes cellules), les résultats retournés par tes fonctions seront faux car pas mise à jour. Donc avec les valeurs en argument, voici à quoi pourrait ressembler ta fonction : Code :
ou encore, dans un appel en proc VBA avec les valeurs des cellules passées en argument (valeurs les plus à jour au moment de l'appel) : Code :
Code :
|
||||||
|
|
10
|
|
|
#8 |
|
Invité de passage
![]() Inscription : mars 2010 Messages : 39 ![]() |
Merci pour vos réponses, j'y vois plus clair maintenant !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com