désolé de vous déranger j'aurais aimé savoir comment faire pour arrondir un nombre au quart de point supérieur (14.33 donne 14.5) et inférieur (14.33 donne 14.25 sur visual basic
je vous remercie d'avance
désolé de vous déranger j'aurais aimé savoir comment faire pour arrondir un nombre au quart de point supérieur (14.33 donne 14.5) et inférieur (14.33 donne 14.25 sur visual basic
je vous remercie d'avance
Pas sur qu'il existe une api pour ça (les autres peuvent infirmer s'il y a lieu)
Je pense qu'il va falloir te faire une chtite fonction de rien du tout![]()
Bonjour,
Comme le signal Vld44, il n'y a pas de fonction existante pour cela.
Voilà une fonction simple pour le faire :
Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Function ArrondiQuart(Nb As Double) As Double Dim Reste As Double Reste = Nb - Fix(Nb) If Reste < -0.75 Then ArrondiQuart = Fix(Nb) - 1 ElseIf Reste >= -0.75 And Reste < -0.5 Then ArrondiQuart = Fix(Nb) - 0.75 ElseIf Reste >= -0.5 And Reste < -0.25 Then ArrondiQuart = Fix(Nb) - 0.5 ElseIf Reste >= -0.25 And Reste < 0 Then ArrondiQuart = Fix(Nb) - 0.25 ElseIf Reste >= 0 And Reste < 0.25 Then ArrondiQuart = Fix(Nb) ElseIf Reste >= 0.25 And Reste < 0.5 Then ArrondiQuart = Fix(Nb) + 0.25 ElseIf Reste >= 0.5 And Reste < 0.75 Then ArrondiQuart = Fix(Nb) + 0.5 Else 'Reste >= 0.75 ArrondiQuart = Fix(Nb) + 0.75 End If End Function
+
Théo
Le cadeau bonus, la focntion qui arrondi n'importe quelle nombre avec n'importe quelle valeur d'arrondi (inférieur ou égal à 1). Je l'ai quand même faite un peu vite fait sur le gaz, donc un bug est pas exclu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Option Explicit Private Sub Command1_Click() Text3 = Arrondir(Text1, Text2) End Sub '------------------------------------------------------------------------------------ 'Arrondi d'un nombre quelconque, positif ou négatif avec valeur d'arrondi quelconque 'Entrée : ' ValIn : Nombre à arrondir ' Arrondi : Arrondi 'Sortie : ' Arrondir : Valeur arrondie '------------------------------------------------------------------------------------ Public Function Arrondir(ValIn As Double, Arrondi As Double) As Double Dim Entier As Long 'Partie entière du nombre à arrondir Dim Reste As Double 'Différence entre partie entière et nombre à arrondir Dim i As Integer 'Pour boucle 'Cas d'exclusion If Arrondi > 1 Then MsgBox "La valeur d'arrondi doit être inférieure ou égal à 1", vbExclamation, "Erreur" Arrondir = 0 Exit Function End If If ValIn = 0 Then Arrondir = 0 Exit Function End If Entier = Fix(ValIn) Reste = Abs(ValIn - Entier) Do i = i + 1 If Reste - (i * Arrondi) <= Arrondi / 2 Then Exit Do Loop Arrondir = IIf(ValIn > 0, Entier + i * Arrondi, Entier - i * Arrondi) End Function
Bonjour à tous,
Je ne dirais qu'une chose... " rhô c'te classe de réponse !!! "...
Malgré le fait que ce soit un code facilement dévellopable, et encore une fois ca n'engage que moi ("je dis ça, je dis rien!") qu'il figure dans la faq...
Enfin bon... Merci, ca sert toujours...
~~ La Praline ~~
... un choco militant !!!
Hé bien! Théocourant et OhMonBato, vous êtres cordialement invités à contribuer à la FAQ!
Partager