Considérez ceci :
Sub add()
'Ceci fonctionne :
Cells(1, 1) = CLng(500) * 100
'Ainsi que ceci :
Cells(2, 2) = 50000 * 100
End Sub
Visiblement, VBA choisissait un type par défaut Integer pour la première expression car ce type est suffisamment grand pour contenir les littéraux du côté droit. 50000 est trop grand pour un Integer, il est donc interprété comme un Long. CLng déclenche explicitement une promotion vers le type Long.