Fonction TRONQUE en VBA?

jeromegmc

XLDnaute Occasionnel
Bonjour à tous,

Je cherche la fonction 'TRONQUE' mais en VBA.

J'ai bien essayé 'LEFT' mais le résultat est un chaîne de caractères alors que je souhaite obtenir un chiffre.

Merci d'avance

A+
 

jeromegmc

XLDnaute Occasionnel
Et l'heureux gagnant est dg62 avec val(left...)

Myta, la fonction FIX me renvoi la partie entière alors que je souhaite un nombre décimal (mal précisé dans ma question,dsl)

Sousou, la fonction ROUND comme son nom l'indique arrondi mais ne tronque pas.

Merci à tous pour vos réponses

A+
 

jeromegmc

XLDnaute Occasionnel
...
.
Un pb résolu, un autre se présente.

Mon 1er pb:
J'ai un nombre : 0.08756454121 et je veux
0.087, pour cela j'utilise:
val(left(0.08756454121,5)

C'est donc le pb qui a été résolu par les réponses précédentes.


Mon 2ème pb:
mon nombre 0.08756454121 est stocké dans la mémoire de VBA comme ceci: 8.756454121E-02
donc quand j'utilise
val(left(8.756454121E-02,5) j'obtiens 8.756 et non 0.087 comme je le souhaitais!!??!!

Quelqu'un aurait-il une solution?

A+
 

RichardS

XLDnaute Junior
Bonjour à tous,

Je cherche la fonction 'TRONQUE' mais en VBA.

J'ai bien essayé 'LEFT' mais le résultat est un chaîne de caractères alors que je souhaite obtenir un chiffre.

Merci d'avance

A+
Richard te répond
Bonjour,

J'ai le même problème : une variable dont je ne connais pas le contenue que je multiplie par un pourcentage et je souhaite un résulta à 2 décimales.
J'ai essayé TRUNC mais cela ne fonctionne pas, je ne suis pas satisfait des autres réponses qui ne me donne que des info partielles. Voila ce que j'ai fais :
Dim Z As String, Z1 As String, Z2 As String, Z3 As Single

Z = Cells(3, 16) 'copie de la cellule dans une variable
Z1 = Int(Z) 'partie entière du nombre
Z2 = Len(Z1) 'longueur de la partie entière
Z3 = Left(Z, Z2 + 3) 'ajouter 3 (2 décimales + la virgule)

J'espère que cela te servira
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour RichardS,

Un
essai qui renvoie un nombre et non un texte. On utilise une fonction XnDec(x, n)x est le nombre à tronquer et n le nombre de décimales à conserver.

Attention! Il faut rester raisonnable pour la valeur de n (pas trop grande, limite sup aux alentours de 25 - à vérifier).

La formule utilisée dans XnDec peut être directement utilisée seule dans du code VBA.

le code de la fonction :
VB:
Function XnDec(x, n)
   XnDec = Int(x) + CDec(Left(CDec(x - Int(x)), n + 2))
End Function



 

Pièces jointes

  • jeromegmc- tronquer à N décimales- v1.xlsm
    17.1 KB · Affichages: 34
Dernière édition:

Discussions similaires

Réponses
12
Affichages
568
Réponses
6
Affichages
269

Statistiques des forums

Discussions
312 412
Messages
2 088 196
Membres
103 763
dernier inscrit
p.michaux