Éviter de toujours définir les mêmes variables "Public"

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 !

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

Dans mon application j'ai plusieurs variables "Public" toutes déclarées dans un même module standard.
Ces variables sont utilisées dans plusieurs macros.
VB:
Option Explicit
Public dut As Byte, ba As Double
Dim annuité As Double
--------------------------------------------------------
Sub Macro1()
	annuités = ba / dut
	
	blablabla
End Sub
--------------------------------------------------------
Sub Macro2()
	annuités = ba / dut
	
	blablabla
End Sub
--------------------------------------------------------
Sub Macro3()
	annuités = ba / dut
	
	blablabla
End Sub
--------------------------------------------------------
Sub Macro4()
	annuités = ba / dut
	
	blablabla
End Sub
--------------------------------------------------------
Plutôt que de toujours récrire à chaque fois dans chaque macro "annuités = ba / dut", il y aurait-il un moyen de ne l'écrire qu'une seule fois dans le module et qu'on n'en parle plus ?

Merci pour tout commentaire.
 
Re : Éviter de toujours définir les mêmes variables "Public"

Bonjour.
Vous pouvez écrire une Private Sub qui le fait et simplement mettre son nom à la place.
Ou même écrire Annuités comme une Function sans paramètre.
Si vous utilisez Option Explicit, mettez plutôt des majuscules au début de vos nom de variables dans les Dim. Mais tapez les en minuscule dans le code: vous serez tout de suit averti qu'elles ne sont pas déclarées si leur casse n'est pas corrigée.
 
Dernière édition:
Re : Éviter de toujours définir les mêmes variables "Public"

Le mot clé Private signifie simplement que la fonction n'est utilisée que dans module où elle est écrite. Vous pouvez l'omettre, si ça n'apporte aucune valeur documentaire à votre code.
VB:
Function Annuités() As Double: Annuités = Ba / Dut: End Function
 
Re : Éviter de toujours définir les mêmes variables "Public"

Bonjour à tous
En partant du #1

Option Explicit
Public dut As Byte, ba As Double
Public annuité As Double

Et immédiatement après avoir défini dut (sinon division par zéro) dans n'importe quelle macro: annuité = ba / dut
Ensuite on doit avoir accès a annuité partout
 
Re : Éviter de toujours définir les mêmes variables "Public"

Re

@ Staple1600

Je le crains !!
le calcul de annuité ne peut être fait que dans une macro puisque dut n'est pas initialisé (d’après le #1 dut est une variable et non d'une constante )
Par contre s'il s'agit de constantes on peut avoir:
Const dut = 2
Const ba = 10000
Const annuité = ba / dut
Les esprits chagrins diront qu'il est aussi simple alors d’écrire
Const annuité = 5000
 
Re : Éviter de toujours définir les mêmes variables "Public"

Re

Les aminches, vous m'embrouillez les méninges 😉
pierrejean dit non, david84 dit oui.
Comme dirait José*: je ne sais plus, moi, je ne sais plus.

*: Pour ceux qui ne connaissent pas José -> référence à Scènes de ménages sur M6.

PS: david84: toi aussi l'aide de VBE te rebute 😉 voir le lien dans mon précédent, précédent message 😉
 
Dernière édition:
Re : Éviter de toujours définir les mêmes variables "Public"

Re


Pour illustre mon propos, voici à quoi je pensais, un truc du genre
Code:
Enum Annuite
 du = 2
 bat = 10000
End Enum
Sub a()
MsgBox Annuite.bat / Annuite.du
End Sub
Le msgbox affiche 5000
EDITION: On peut aussi faire comme ceci
Code:
Enum Annuite
    dut = 2
    ba = 10000
    valeur = Annuite.ba / Annuite.dut
End Enum
Code:
Sub aa()
MsgBox Annuite.valeur
End Sub
Code:
Sub bb()
MsgBox Annuite.valeur / 10000
End Sub



Mais tout en mettant ma balise
Code:
, finalement je ne suis plus sur que dans le cas présent Enum fasse l'affaire :p
 
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

Discussions similaires

Retour