Variable As Single

Bonjour,

La variable As Single correspond à un nombre avec virgule.

Je voulais savoir si c'était pour un nombre décimal dont la virgule est représentée par un point ou une virgule ?

Dans ce que j'ai pu voir sur le net que la virgule est représentée par un point

Bonsoir JeanF44,

Le point "." est affecté à une variable de type "String" cette à dire non numérique, si cela te bloque tu peux convertir automatiquement convertir le "." en "," avec un "worksheet_change".

Bonsoir et merci de la réponse,

J'ai une variable décimale dans un module avec 1 chiffre derrière la virgule.

Quand je la déverse dans une cellule, j'ai 7 chiffres derrière la virgule avec un 4 à la fin alors que le chiffre 1 après la virgule

Est-ce normal ?

Comment résoudre le problème ?

Fichier joint ci-dessous :

Bonjour JeanF44,

Essaye comme ceci :

Range("F8").Value = CDec(Var)

Bonjour,

essaies ceci :

Option Explicit
Option Private Module 
Sub Variable_Virgule()
    Dim Var As Single
    Dim x As Variant
    Var = 10.1 
    Range("F8").Value = Var
    x = Range("F8").Value
    MsgBox "La valeur de la cellule est une variable de type : " & TypeName(x) & vbCr & _
           "La valeur de la cellule est : " & x
End Sub

'

Bonjour,

Avec une déclaration de type Double !?

Dim Var As Double 

Re,

J'ai une variable décimale dans un module avec 1 chiffre derrière la virgule.

Quand je la déverse dans une cellule, j'ai 7 chiffres derrière la virgule avec un 4 à la fin alors que le chiffre 1 après la virgule

Est-ce normal ?

Il ne s'agit pas d'une variable décimale mais d'une variable de type Single (binaire exprimée en virgule flottante à simple précision)

Les nombres contenus dans une cellule sont toujours de type Double (binaire exprimée en virgule flottante à double précision)

Quand tu déverse ton Single il est automatiquement converti en Double

Ce qui se passe est normal, c'est un problème de précision, voir :

http://www-pequan.lip6.fr/~vmm/expose.pdf

https://support.microsoft.com/en-us/kb/78113/fr

Bonjour,

pour compléter Patrice, vba travaille toujours avec le point en séparateur décimal.

L'affichage . ou , ne se fait que sur les feuilles en fonction de tes réglages régionaux.

Et ils ne sont actifs que pour des numériques (Single, Double, etc) et selon le format de cellule, un String restant inchangé.

eric

Bonjour @Jean-Eric et merci de la réponse.

Avec As Double ça fonctionne.

Par contre existe-t-il un code pour définir le nombre de décimale quand je déverse ma variable dans une cellule ?

Merci aux autres personnes pour leur réponse

Avec As Double ça fonctionne.

Par contre existe-t-il un code pour définir le nombre de décimale quand je déverse ma variable dans une cellule ?

Ça fonctionne mais ce n'est plus une variable de type Single !

Je pensais que tu voulais faire un exemple d’utilisation des variables de type Single !

Pour définir le nombre de décimales, il y a plusieurs possibilités :

1) Afficher un certain nombre de décimales dans la cellule, pour cela il faut agir sur le format de la cellule (propriété numberformat)

2) Réduire la précision du nombre pour éliminer les décimales superflues, il faut alors soit arrondir, soit tronquer le nombre (fonctions Round() et/ou Int())

Rechercher des sujets similaires à "variable single"