|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : arrondir valeur [ Langages dérivés / VBA ] (matth72)
Informations & options pour cette discussion
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é 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
recuperer la valeur d'une cellule avec une liste deroulante [ par repiet95 ]
Bonjour, Je suis debutant en visual basic et j'essaaye de faire des fonctions pour excel. Pour l'instant j'ai fait une macro qui permet d'extraire de
Obtenir la valeur de la numérotation à partir d'un module VB [ par Tealck ]
Bonjour à tous,J'ai un module VB qui transforme le texte seléctionné en language HTML.Tout marche bien (gras, italique, styles, tableau, etc !)Malheur
comment obtenir une valeur dans une autre table access ?? [ par younes3005 ]
bonjour, je suis un débutant en programmation access, je travaille sur un petit projet où je doit affecter une donnée à une zone de texte (textbox) qu
comment recherchez un valeur dans une colonnes et la comparer si pareil renvoyer la valeur dans une autre celulle [ par qcsylvain ]
Bonjour, sa fait des semaines que je cherche une facon de crée ce code, je travail avec excel vba 2007jai 2 feuille dans mon classeur "2" et "Feuil1"
Recuperer une valeur lors du deploiment [ par ladil007 ]
Salut;je veux creer un setup pour mon programme sous visual studio 2008 code vb.je veux que pendant l'instalation l'utilisateur fourni un URL.cet URL
Récupérer une formule et non la valeur d'une feuille Excel [ par DeWinDev ]
Hello,Je développe sous Windev et VB, et je suis à la recherche d'une méthode, class, dll, ...afin de pouvoir récupérer la formule et non le résultat
vb.net [ par magicabdou ]
stp j ai besoin d une fonction qui compare la valeur entré avec des autres dans une liste prédéfini ,une fois qu'il trouve une valeur plus grande dans
parcourir une Listbox prédéfini "vb.net 2005" [ par magicabdou ]
stp j ai besoin d une méthode qui compare la valeur entré avec des autres dans une liste prédéfini ,une fois qu'il trouve une valeur plus grande dans
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|