J’aimerais tout de même comprendre le pourquoi du problème, et là, j’aurai (un peu) progressé 🐌
Bonjour,
C'est un problème de typage des variables
Ton code d'origine tu as écrit :
Solde_depart = InputBox("Solde du mois précédent ?")
C'est l'équivalent de :
Solde_depart = VBA.Interaction.InputBox("Solde du mois précédent ?")
C'est à dire que tu utilises l'inputbox du VBA, qui renvoie une variable de type String, mais ta variable Solde_depart est déclarée de type Double.
L'erreur survient lors du transtypage implicite effectué par le VBA lorsqu'il rencontre l'opérateur = pour affecter le String provenant de l'inputbox à la variable de type Double.
Mon code utilise l'InputBox d'Excel qui permet de typer la variable renvoyée (Type:=1 renvoie une variable numérique) donc pas de transtypage et pas d'erreur.
La différence fondamentale est que celui du VBA attend un nombre en syntaxe US (avec point) alors que celui d'Excel attend une syntaxe locale (avec virgule).
Voir l'aide de chaque Inputbox :
Fonction InputBox (Visual Basic pour Applications) | Microsoft Docs
Méthode Application.InputBox (Excel) | Microsoft Docs