Autres Macro de calcul avec décimale

Papychou56

XLDnaute Nouveau
Bonjour à toutes et tous.
Papy appelle au secours...: j'ai créé un classeur avec plusieurs feuilles.
Une de ces feuilles est utilisée pour stocker les résultats de divers calculs.
Pour cela, la feuille en question (feuille "Calcul") comporte une incrémentation des lignes afin d'avoir le dernier résultat sur la dernière ligne.
Le calcul est effectué grâce à un coefficient attribué en fonction d'un choix.
Dans ces coefficients, il y en a comportant des décimales.
Mon problème est bien là: VBA ne veut pas prendre en compte la décimale
Si j'écris la décimale avec un ".", cette dernière est arrondie à la valeur entière supérieure (par exemple: 1.5 est arrondi à 2).
Si je l'écris avec une virgule ",", elle génère "une erreur de compilation. Attendu: fin d'instruction".
Comment puis-je solutionner mon problème?
Voici le code de la macro en question:

'Coefficient multiplicateur.
Sub coefmulti()
Dim coef%, Multiplicateur$
Worksheets("Calcul").Activate
Multiplicateur = Cells(der_ligne, 5)
Select Case (Multiplicateur)
Case "Choix 1"
coef = 1
Case "Choix 2"
coef = 1,5
Case "Choix 3"
coef = 2
Case "Choix 4"
coef = 4.5
Case "Choix 5"
coef = 6
End Select
Sheets("Résultat").Cells(4, 7).Value = coef
End Sub

Merci à tous.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Papychou56 ,

Dans la déclaration des variables vous utilisez dim coef%
% est le raccourci pour désigner le type Integer.

VBA a donc attribué le type integer à la variable coef. Integer fait référence à un nombre sans virgule.
Donc quand un peu plus loin vous écrivez : coef = 4.5, VBA va convertir 4.5 en nombre sans virgule et l'affecter à coef.

Il faut donc changer le type de la variable coef : par exemple en Dim coef as single ou bien Dim coef as double qu'on peut aussi écrire : Dim coef! ou bien dim coef#
 

Papychou56

XLDnaute Nouveau
Bonjour mapomme.
Merci pour la petite formation à l'attention d'un papy qui bidouille en VBA.
J'ai appliqué le conseil et tout fonctionne parfaitement.
Je n'ai plus qu'à enregistrer la leçon dans mon classeur qui est dédié à ma formation.
Grand merci et bonne soirée.
 

Discussions similaires

Réponses
4
Affichages
418
Réponses
7
Affichages
628

Statistiques des forums

Discussions
314 630
Messages
2 111 387
Membres
111 119
dernier inscrit
cooc