Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1625 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Probleme d'arrondi

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme d'arrondi

n°1564642
leo gourve​n
I Can.
Posté le 24-05-2007 à 15:23:32  profilanswer
 

Bonjour,
 
Je viens de faire un programme qui calcule une moyenne, (Je somme une colonne d'excel, puis je divise par le nombre de ligne).
 
Pourtant la fonction me retourne un nombre entier arrondi.
Je voudrais avoir deux chiffres apres la virgule, comment je peux faire ?
 
EDIT, je code en VB.net


Message édité par leo gourven le 24-05-2007 à 15:24:46
mood
Publicité
Posté le 24-05-2007 à 15:23:32  profilanswer
 

n°1564645
leo gourve​n
I Can.
Posté le 24-05-2007 à 15:28:52  profilanswer
 

Bon j'ai trouvé, mais je me retrouve avec pleins de chiffres apres la virgule, j'aimerais en avoir que deux maintenant...

n°1564648
jpcheck
Pioupiou
Posté le 24-05-2007 à 15:37:27  profilanswer
 

regarde dans l'aide vba du coté de "format"

n°1564651
leo gourve​n
I Can.
Posté le 24-05-2007 à 15:39:03  profilanswer
 

Oep, merci j'ai trouvé. :)

n°1952995
shurik84
Posté le 24-12-2009 à 11:02:22  profilanswer
 

Bonjour, voila moi j'ai un autre probléme j'ai un fichier excel avec 1124 ligne et j'ai une colonne qui à le nombre d'effectif pour chaque établissement sous la forme 1.00 soit 1 salarié ou 1 personne.

 

J'ai seulement qq notions en vb, j'ai commencé un bout de code pour avoir la collonne " n " de ma feuille excel arrondi sans décimale

 

1.00 => 1 le soucis c'est que la conversion fonctionne cependant après éxécution j'ai une colonne " n " avec 0 sur les 1124 lignes, il écrase les autres donnés par etablissement ex : 2 salarié, 5 salariés etc... ( 2.00 => 0   5.00 => 0 )

 
Code :
  1. Sub Arrondi()
  2. Dim i As Long
  3. Dim n As Long
  4. i = 0
  5. For i = 2 To 1124 ( je commence a partir de la ligne 2 )
  6.      Cells(i, "n" ).Value = Format(Cells(i, "n" ).Value, "#0" )
  7.     Next i
  8. MsgBox ("Conversion de l'effectif arrondi à l'entier OK" )
  9. End Sub
 

D'où peut provenir l'erreur sachant que la 1ére ligne est l'en-tête ( Code, libellé, raison social etc...)

 

Initialisation de i ? Format ?

 

Je pense qu'il ne fait pas la différence entre chaque cellule et met des 0 de partout par rapport à "#0" mais si a chaque fois je passe a la suivante ca devrait marcher non ? ce qui est bizarre c'est que j'essaye avec un fichier excel plus petit avec x valeur sous la forme 1.17 et il compare chaque ligne et me fait les changement correctement ligne par ligne est ce du au format de cellule sous excel ?

 

Je vous remercie d'avance de vos réponses car je bloque un peu depuis ce matin autant bien la solution est toute simple ! Y'a t il un autre bout de code ou une autre fonction qui permet de faire cela j'ai essayer avec la fonction round mais ce n'est pas très concluant  :heink:

 

Merci d'avance !!!


Message édité par shurik84 le 24-12-2009 à 14:56:47
n°1953060
shurik84
Posté le 24-12-2009 à 14:20:21  profilanswer
 

Bon après quelques temps de réflexion je viens de faire un code qui tourne seulement c'est un peu répetitif sachant que si j'ai des salariés au dessus de 15 personne mettre 15 fois la même ligne peut s'averer long ! Trés long !!!

 
Code :
  1. Sub Arrondi()
  2. Dim i As Long
  3. Dim n As Long
  4. i = 0
  5. For i = 2 To 1124
  6. If Cells(i, "n" ).Value = "0.00" Then
  7.    Cells(i, "n" ).Value = Format(Cells(i, "n" ).Value, "0#" )
  8.           Else
  9.             If Cells(i, "n" ).Value = "1.00" Then
  10.             Cells(i, "n" ).Value = Format(Cells(i, "n" ).Value, "1#" )
  11.                Else
  12.                  If Cells(i, "n" ).Value = "2.00" Then
  13.                  Cells(i, "n" ).Value = Format(Cells(i, "n" ).Value, "2#" )
  14.                Else
  15.                  If Cells(i, "n" ).Value = "3.00" Then
  16.                  Cells(i, "n" ).Value = Format(Cells(i, "n" ).Value, "3#" )
  17.                   End If
  18.              End If
  19.       End If
  20. End If
  21.    
  22.     Next i
  23. MsgBox ("Conversion de l'effectif arrondi à l'entier OK" )
  24. End Sub
 

Qui a une petite solution pour simplifier cela sachant que j'ai essayé de créer une nouvelle variable avec 0.00 en init et puis une incrémentation de 1 a chaque fois mais je ne doit pas avoir la bonne syntaxe ou surement une mauvaise au niveau de la déclaration de ma variable!!!!!

 

Merci de votre aide !!!


Message édité par shurik84 le 24-12-2009 à 15:06:12

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Probleme d'arrondi

 

Sujets relatifs
[JS] Problème de rafraichissement de l'affichageDirectShow - Problème de FullScreen
[HELP] Problème de TableauProblème d'installation du forum phpBB
Probleme avec un module VBAProblème de coordonnées...
Unrecognized attribute 'requirePermission' - problème avec machine.conProblème d'arrondi, somme de pourcentage au dela de 100%
problème d'arrondi en c++Gros problème de division et d'arrondi !
Plus de sujets relatifs à : Probleme d'arrondi


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR