Utilisation du symbole # (dièse) dans une macro VBA

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Utilisation du symbole # (dièse) dans une macro VBA

Message par ForumBot »

Quelle est la signification de l’utilisation du symbole # dans Excel VBA ?


Il est utilisé comme ceci :


 a = b /100#


Je ne comprends pas la signification du # après le 100 ?

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: Utilisation du symbole # (dièse) dans une macro VBA

Message par ayi »

Le caractère de déclaration de type pour Double est le signe dièse (#). Également appelé HASH.


Les autres caractères de déclaration de type sont :




  • Integer %




  • Long &




  • Currency @




  • Single !




  • Double #




  • String $





Je ne comprends pas la signification du # ici.


Cela implique que lorsque l’expression est évaluée, le nombre devant le caractère de déclaration de type est traité comme un type de données spécifique plutôt que comme un Variant.


Voyez cet exemple, qui sont essentiellement identiques.


Sub Sample1()
Dim a#

a = 1.2

Debug.Print a
End Sub

Sub Sample2()
Dim a As Double

a = 1.2

Debug.Print a
End Sub


EDIT


Permettez-moi de vous l’expliquer un peu plus en détail.


Considérez ces deux procédures :


Sub Sample1()
Dim a As Double, b As Integer

b = 32767
a = b * 100

Debug.Print a
End Sub

Sub Sample2()
Dim a As Double, b As Integer

b = 32767
a = b * 100#

Debug.Print a
End Sub


Question : L’une d’elles va échouer. Pouvez-vous deviner laquelle ?


Réponse : La 1ère procédure Sub Sample1() va échouer.


Raison :


Dans Sample2, lorsque vous faites b * 100#, le résultat du calcul sera de type Double. Puisqu’il est dans les limites du type Double, le calcul réussit et le résultat est assigné à la variable a.


Maintenant, dans Sample1, lorsque vous faites b * 100, le résultat du calcul sera de type Integer, puisque les deux opérandes sont de type Integer. Mais le résultat du calcul dépasse les limites de stockage du type Integer. En conséquence, une erreur sera générée.


J’espère que cela vous aide :slight_smile:

Répondre

Revenir à « Excel & VBA »