Fonction TRONQUE en VBA?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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+
 
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+
 
...
.
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+
 
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
 
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

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
154
Réponses
1
Affichages
90
Réponses
20
Affichages
250
Retour