VBA éviter l'Arrondi du dernier chiffre avant la virgule.

  • Initiateur de la discussion Initiateur de la discussion zozo
  • Date de début Date de début

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 !

zozo

XLDnaute Occasionnel
Bonjour à tout le forum,

Ma préoccupation en VBA est comme suit :

- J'ai la valeur initiale suivante (somme d'une colonne) : 4509833.72

- En VBA, en utilisant Application.Substitute(mt, ".", "") pour éliminer la virgule, la valeur devient : 450983472 (le problème : arrondi du dernier chiffre avant la virgule)

- Le résultat que j'essaie d'avoir en VBA est : 450983372 (avec élimination de la virgule uniquement).

Merci pour toute intervention de votre part.
 
Dernière édition:
Bonsour®
Bonjour à tout le forum,

Ma préoccupation en VBA est comme suit :

- J'ai la valeur initiale suivante (somme d'une colonne) : 4509833.72

- En VBA, en utilisant Application.Substitute(mt, ".", "") pour éliminer la virgule, la valeur devient : 450983472 (le problème : arrondi du dernier chiffre avant la virgule)

- Le résultat que j'essaie d'avoir en VBA est : 450983372 (avec élimination de la virgule uniquement).

Merci pour toute intervention de votre part.
😎 simplement :
=INT(100*mt)
 
Bonsoir à tous 🙂

@Modeste geedee : apparemment INT n'est pas reconnu(directement dans la barre de formule).

Fonction personnalisée d'après Modeste geedee et pierrejean, à mettre dans un module.

Function Entier(cellule)
Entier = Int(100 * cellule)
End Function

Ensuite en C1: =Entier(A1), puis tirer vers le bas.
 
Dernière édition:
Bonsour®
apparemment INT n'est pas reconnu(directement dans la barre de formule).
????
en formule :
=ENT(100*CelluleSomme)

😕🙄😡😀
Excel est d'abord un tableur ,
avant que de penser : panacée=VBA
maîtriser le B.A. BA des feuille de calculs !!!!

et puis comme le dit JOB75,
un exemple et son contexte en situation avec le résultat attendu
faciliteraient la compréhension de tous...😵

😉 NB :
je découvre à l'instant le menu contextuel Emoji
upload_2018-8-16_11-41-55.png
 
Bonjour
le mieux c'est encore de travailler le nombre en string mais de le restituer en long avec val
vous constaterez que j'injecte un nombre avec pour separatuer decimal un point mais!!! que je replace une virgule dans la fonction
VB:
Sub test()
valeur = sansvirgule(4509833.72)
MsgBox "valeur :" & valeur & "  type: " & TypeName(valeur)
End Sub

Function sansvirgule(NBRE As String) As Long
sansvirgule = Val(Replace(NBRE, ",", ""))
End Function
 
- 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

Retour