Dans un module VBA (Excel 2007), j'ai voulu utiliser la fonction Val pour convertir un texte en nombre. Tout allait bien jusqu'à ce que j'envoie à cette fonction un paramètre du type :
nombre1 & "d" & nombre2
En principe, la fonction Val(nombre1 & "d" & nombre2) devait tout simplement retourner nombre1. Au lieu de cela, elle a renvoyé nombre1 * 10 ^ nombre2

Voici le code utilisé dans un module VBA:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Function retVal(v As String) As Double
retVal = Val(v)
End Function
Avec la saisie dans la feuille Excel de
=retVal("77d8")

avec nombre1 = 77 et nombre2 =8
je m'attendais à avoir comme résultat : 77

mais j'ai obtenu : 7 700 000 000

ou, selon le format des nombres de la cellule : 77 E+8
autrement dit : 77 * 10 puissance 8

La lettre "d" dans ce cas représente-t-elle un caractère spécial ?
Y a-t-il une explication à cela ?