Les constantes sont des emplacements de mémoires réservés pour le traitement de vos procédures, mais contrairement aux variables leurs contenus ne seront pas modifiés au cours de l’exécution du programme. Peut employés elles sont pourtant fort utile pour simplifier l’écriture du code informatique…
A l’instar des variables il faudra les déclarer à l’aide du mot clé CONST puis les initialiser, la déclaration du type étant facultatif.
Const nom (as Type) = valeur
- 1 – Dans ce premier exemple nous voyons que l’écriture du deuxième Msgbox est facilitée par l’emploie des constantes pi et message, mais il faut aussi considérer qu’il suffirait par exemple de modifier la valeur de la constante pi pour que cette valeur se modifie dans l’ensemble de votre programme ou vous y faites référence. Ainsi le passage de pi à la valeur 3.14 modifiera l’affichage du deuxième et troisième Msgbox, mais pas du premier. En limitant le nombre de saisie on limite évidement des erreurs éventuelles.
Sub ma_procedure_1()
Const pi = 3.1415927
Const message = "La valeur de Pi est : "
Dim surface As Single
Dim rayon As Single
rayon = 2
MsgBox "La valeur de Pi est : 3,1415927"
MsgBox message & pi
surface = pi * rayon * rayon
MsgBox "Surface = " & surface & " M²"
End Sub
- 2 – Les procédures ont également une portée, ainsi dans ce deuxième exemple le résultat du calcul est nul car les constantes pi et messages sont locales à la procédure « ma_procedure_1() »
Sub ma_procedure_2()
Dim surface2 As Single
Dim rayon2 As Single
rayon2 = 1
MsgBox "La valeur de Pi est : 3,1415927"
MsgBox message & pi
surface2 = pi * rayon2 * rayon2
MsgBox "Surface = " & surface2 & " M²"
End Sub
Il faut donc dans ce cas déclarer les constantes comme locales à la feuille de code (globales aux procédures de cette feuille) de là manière suivante :
Const pi = 3.1415927
Const message as String = "La valeur de Pi est : "
___________________________________________________________
Sub ma_procedure_1()
Dim surface As Single
Dim rayon As Single
rayon = 2
MsgBox "La valeur de Pi est : 3,1415927"
MsgBox message & pi
surface = pi * rayon * rayon
MsgBox "Surface = " & surface & " M²"
End Sub
____________________________________________________________
Sub ma_procedure_2()
Dim surface2 As Single
Dim rayon2 As Single
rayon2 = 1
MsgBox "La valeur de Pi est : 3,1415927"
MsgBox message & pi
surface2 = pi * rayon2 * rayon2
MsgBox "Surface = " & surface2 & " M²"
End Sub
- 3 - Par contre si votre procédure se trouve sur une autre feuille de code (module de feuille ou de classeur) alors une déclaration publique dans le module générale de votre feuille de code est nécessaire. C'est-à-dire que vous rendez vos constantes utilisables dans l’ensemble du projet Visual Basic.
Public Const pi = 3.1415927
Public Const message As String = "La valeur de Pi est : "
- 4 - Enfin sachez que les programmeurs VBA aiment à utiliser les constantes pour la simplification de l’écriture des boîtes de dialogues, notamment du Msgbox. Comparez les deux procédures suivantes, vous constaterez que la seconde sera plus simple à modifier, surtout si l’on doit utiliser de nombreuses fois cette Msgbox.
Sub ma_procedure_3()
Dim choix As String
choix = MsgBox("Aimez vous ce blog ? ", vbDefaultButton2 + vbYesNo + vbQuestion, "olivier-picot.fr")
Select Case choix
Case Is = vbYes
Exit Sub
Case Is = vbNo
Exit Sub
End Select
End Sub
_________________________________________________________________
Sub ma_procedure_4()
Dim choix As String
Const invite As String = "Aimez vous ce blog ? "
Const typeboite As String = vbDefaultButton2 + vbYesNo + vbQuestion
Const titre As String = "olivier-picot.fr"
choix = MsgBox(invite, typeboite, titre)
Select Case choix
Case Is = vbYes
Exit Sub
Case Is = vbNo
Exit Sub
End Select
End Sub
1 commentaires:
Merci beaucoup pour vos "cours" hebdomadaires...
J'utilise depuis quelques temps déjà les fonctions avancées d'Excel, mais sans avoir jamais lu quelque ouvrage que ce soit...
J'ai repris certains travaux en les analysant et en les adaptant à mes besoins, j'ai beaucoup appris comme cela, mais finalement rien ne vaut une présentation structurée des choses!
Enregistrer un commentaire