Accueil > Forum > > > > arrondir valeur
arrondir valeur
mercredi 28 mai 2008 à 15:30:00 |
arrondir valeur

matth72
|
Bonjour à tous
J’ai un tout petit problème je récupère une valeur d’un calcul par exemple 2,38 je voudrai arrondir la valeur à 2,5
J’ai essayé de convertir les valeurs avec CSng ou encore CInt mais en vain
Si une âme charitable peut m’aider merci d’avance
|
|
mercredi 28 mai 2008 à 16:02:19 |
Re : arrondir valeur

yvesyves
|
Tu n'as qu'à creer une fonction :
Private Sub Form_Load() MsgBox (ArrondiPerso(2.38)) End Sub Public Function ArrondiPerso(Number As Double) As Single Dim MonDecimale As Double MonDecimale = CDbl(Number - Int(Number)) Dim Resultat As Single Select Case MonDecimale Case Is > 0.75 Resultat = Int(Number) + 1 Case Is > 0.5 Resultat = Int(Number) + 0.75 Case Is > 0.25 Resultat = Int(Number) + 0.5 Case Is > 0 Resultat = Int(Number) + 0.25 End Select ArrondiPerso = Resultat End Function
|
|
mercredi 28 mai 2008 à 16:03:24 |
Re : arrondir valeur

mortalino
|
Salut, je ne sais pas si c'est la meilleure façon de procéder, mais je t'en propose une (ça m'aura occupé quelques minutes  )  Option Explicit
Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCTYPE As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long
Enum eMode Inferior = 0 Superior = 1 Half = 2 End Enum
Private Const LOCALE_SDECIMAL = &HE
Public Property Get DecimalSeparator() As String Dim nLength As Long Dim nLocale As Long nLocale = GetUserDefaultLCID() nLength = GetLocaleInfo(nLocale, LOCALE_SDECIMAL, vbNullString, 0) - 1 DecimalSeparator = Space$(nLength) GetLocaleInfo nLocale, LOCALE_SDECIMAL, DecimalSeparator, nLength End Property
Function RoundNumber(ByVal dValue As Double, Mode As eMode) As Double Dim vartemp As Integer If InStr(1, CStr(dValue), DecimalSeparator) Then Select Case Mode Case Inferior RoundNumber = CDbl(Mid$(dValue, 1, InStr(1, dValue, DecimalSeparator))) Case Superior RoundNumber = CDbl(Mid$(dValue, 1, InStr(1, dValue, DecimalSeparator))) + 1 Case Half vartemp = CInt(Right$(Round(dValue, 1), 1)) If vartemp < 3 Then RoundNumber = CDbl(Mid$(dValue, 1, InStr(1, dValue, DecimalSeparator))) ElseIf vartemp > 7 Then RoundNumber = CDbl(Mid$(dValue, 1, InStr(1, dValue, DecimalSeparator))) + 1 Else RoundNumber = CDbl(Mid$(dValue, 1, InStr(1, dValue, DecimalSeparator))) + 0.5 End If End Select Else RoundNumber = dValue End If End Function
Sub test() Debug.Print RoundNumber(2, Inferior) Debug.Print RoundNumber(2, Superior) Debug.Print RoundNumber(2, Half) Debug.Print RoundNumber(2.3, Inferior) Debug.Print RoundNumber(2.3, Superior) Debug.Print RoundNumber(2.3, Half) Debug.Print RoundNumber(2.8, Inferior) Debug.Print RoundNumber(2.8, Superior) Debug.Print RoundNumber(2.8, Half) End Sub
 ~ Mortalino ~ Colorisation automatique@++ le mystérieux chevalier,"Provençal, le gaulois" Forum Office & VBA
|
|
mercredi 28 mai 2008 à 16:04:57 |
Re : arrondir valeur

yvesyves
|
Ca arrondit la valeur a 0.25 près
|
|
mercredi 28 mai 2008 à 16:05:00 |
Re : arrondir valeur

mortalino
|
Arf.. bah voilà, je me suis fait ch**r pour rien, surtout avec mes Mid.. Bien vu le code, c'est une façon à laquelle je n'avais pas pensé @++ le mystérieux chevalier,"Provençal, le gaulois" Forum Office & VBA
|
|
mercredi 28 mai 2008 à 16:55:24 |
Re : arrondir valeur

yvesyves
|
Salut Mortalino, Désolé :S. J'ai une petite question. Pourrais tu m'expliquer ce qu'est GetLocalInfo, par curiosité. Merci à toi
|
|
mercredi 28 mai 2008 à 17:21:36 |
Re : arrondir valeur

matth72
|
merci de ta reponse sa fonction mais pas comme je voudrais
vu que je suis pressé sa fera l'affaire
encore merci
a+
|
|
mercredi 28 mai 2008 à 17:27:40 |
Re : arrondir valeur

matth72
|
desoler j'avais pas vu qu'il y avait tand de reponse en tout cas merci des infos a++
|
|
mercredi 28 mai 2008 à 19:34:39 |
Re : arrondir valeur

jmfmarques
|
Bonjour, est-ce ce que tu souhaites ?N
Private Sub Command1_Click() Dim toto As Double toto = 1.22 toto = Int(toto) + IIf((toto - Int(toto)) >= 0.25, 0.5, 0) MsgBox toto End Sub
|
|
jeudi 29 mai 2008 à 08:56:35 |
Re : arrondir valeur

matth72
|
merci je vais travailler dessus
a+
|
|
Cette discussion est classée dans : valeur, arrondir
Répondre à ce message
Sujets en rapport avec ce message
Empêcher d'arrondir [ par mictou ]
Mictou: Bonjour, j'ai un petit problème: j'ai une variable qui reçoit une valeur de 327,75. Je dois diviser cette variable par cent et obtenir 3,27. M
arrondir un nombre à la valeur supérieur dès que le premier chiffre après la virgule est >0 [ par ndaseraphin ]
slt,je souhaite de l'aide. En faite je veux arrondir un nombre à virgule à la valeur supérieur dès que le premier chiffre après la virgule est supérie
reporter valeur classeur1 vers classeur2 et arrondir [ par milouze974 ]
Bonjour, Comment faire pour reporter les valeurs d'un classeur vers un autre et arrondir en même temps ces valeurs? Ci-dessous, une photo qui vous exp
Arrondir directement la valeur d'une zone de texte [ par talined ]
Bonjour, J'ai une question concernant la valeur d'une zone de texte. J'ai paramétré ma zone de texte en key press. Cette zone n'autorise que des cara
recherche dans tableau multidirectionnel [ par wholehog2 ]
bonjour à tous. Ma question va vous paraitre simple mais je cherche a obtenir la valeur de la 3 eme colonne d'un tableau par rapport à la valeur cher
Cacher feuilles en fonction de valeur de deux cellules [ par miremate ]
Bonjour, J'ai un fichier excel avec une trentaine de feuilles. J'ai besoin d'une macro qui cache toutes les feuilles du livre à l'exception de deux f
Nombre d'occurence dans une plage de données d'une valeur saisie dans un text box [ par eltigre85 ]
Salut, Je voudrai connaitre le nombre d'occurrence d'une valeur saisie dans un textbox dans une plage de données. La textbox est dans un userform en c
Modifier valeur d'une clé registre [ par FaonManager ]
Bonjour, j'ai un problème pour modifier la valeur d'une clé registre, j'utilise le code suivant mais il ne marche pas : [code=vb]Dim key As Microsoft
vscrollar valeur par 0.2 et pas par 1 [ par petiflamand ]
Bonjour , Avec un vscrollbar je n'arrive pas a changer la valeur par 0.2 a la place de 1 on est obliger de passer par un calcul ?? Merci
Comment savoir si la valeur Text correspond à une entrée dans la liste d'un Combobox. [ par BasicZx81 ]
Bonsoir à tous, j'ai encore un petit soucis avec un Combobox, il est paramétré pour que l'on ne puisse pas entrer autre chose que ce qu'il y a dans la
Livres en rapport
|
Derniers Blogs
OFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONSOFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONS par junarnoalg
De nombreuses entreprises font le choix de SharePoint Online, service fourni au travers de l'offre de Microsoft Office 365. S'il est vrai que ce choix apporte un grand nombre d'avantages; rapidité de mise en ½uvre, disponibilité, large couvertu...
Cliquez pour lire la suite de l'article par junarnoalg PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc [HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Très bonne après-midi passée lors cette conférence avec le W3C, organisée par L' Inria sur les nouveaux standards, ce Mardi 14 Février, on sent vraiment que çà bosse au W3C, et l'avenir est très très prometteur pour le HTML5, notamment ...
Cliquez pour lire la suite de l'article par Gio GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|