Je suis nouveau sur Excel-Downloads et je me tourne vers vous car j'ai besoin d'un peu d'aide...
Je vous expose mon problème :
je souhaiterais tronquer des nombres à 1 chiffe après la virgule
exemple 3.12 -> 3.1 ; 12.78 -> 12.7
Sous une feuille excel, très facile (=TRONQUE(E5;1)) mais ça devient plus compliqué quand on essaie en VBA...
J'ai essayé de résoudre mon problème de plusieurs manières avec les fonctions ROUND, FormatNumber mais ces dernières arrondissent alors que je souhaite tronquer...
J'ai essayé avec une macro enregistrée mais le problème c'est que le nombre de données à tronquer est variable et cela ne répond pas à mon besoin.
Autre détail important, je suis novice en VBA et "autodidacte" (si je puis dire, merci les forums) : j'ai dû apprendre sur le tas et je n'ai pas toutes les bases.
Re : Tronquer un nombre à 1 chiffre après la virgule
Bonjour Caillou et merci de ta réactivité,
j'ai modifié la ligne de code mais ça me supprime tous les chiffres après la virgule (je souhaite conserver les dixièmes) et de plus
me multiplie le nombre entier par 10 ...
Re : Tronquer un nombre à 1 chiffre après la virgule
Bonjour Toho et bienvenu, bonjour le forum,
Peut-être comme ça :
Code:
Sub Macro1()
Dim cel As Range
Dim e As Integer
Dim d As Double
For Each cel In Range("E5").CurrentRegion
e = CInt(Split(cel.Value, ",")(0))
d = CDbl(Left(Split(cel.Value, ",")(1), 1) / 10)
cel.Value = e + d
Next
End Sub
[Édition]
Bonjour Philippe, Cailllou on s'est croisé... Pourquoi faire simple quand on peut faire compliquer ? Hein ! je pose la question...
Re : Tronquer un nombre à 1 chiffre après la virgule
Re,
Autre détail important, je suis novice en VBA et "autodidacte" (si je puis dire, merci les forums) : j'ai dû apprendre sur le tas et je n'ai pas toutes les bases.
Sub Macro1()
Dim cel As Range
Dim e As Integer
Dim d As Double
For Each cel In Range("E5").CurrentRegion
e = CInt(Split(cel.Value, ",")(0))
d = CDbl(Left(Split(cel.Value, ",")(1), 1) / 10)
cel.Value = e + d
Next
End Sub
c'est parce que je n'ai posté que la partie de code à modifier, il est nécessaire de le remettre en bonne place place dans le code du fichier joint à la question post#1
à+
Philippe
Edit: j'avais effectivement ajouté Dim cell as Range lors de mon test sur fichier
mais il a échappé au copier/coller par oubli
Re : Tronquer un nombre à 1 chiffre après la virgule
re
mon intervention avait surtout pour but de montrer que Si... on se dispense des déclarations de variables (ce que je ne fais presque jamais), le .Value est indispensable dans certains cas mais pas dans d'autres !