Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonction ROUND ne marche pas sous excel 98

3 réponses
Avatar
Vincent
Voilà, j'ai créé sous VBA une macro excel (excel XP).
J'ai fait appel à la fonction round, aucun probleme.
Ma macro fonctionne correctement, jusque là pas de prob.

Seulement j'ai besoin de l'utiliser sur un PC equipé de windows 98 et de
excel97.
Et là, c'est le drame.. la macro ne fonctionne plus du tout.. la fonction
round n'est pas reconnue, et donc fait planter la macro.... comment faire ???

Existe-t-il un patch ? ou un moyen de programmer en vba une fonction qui
fasse la meme chose ?

Merci de votre aide

3 réponses

Avatar
michdenis
Bonjour Vincent,

As-tu essayé ceci :

Msgbox Application.WorksheetFunction.Round(25.12, 1)


Salutations!



"Vincent" a écrit dans le message de news:
Voilà, j'ai créé sous VBA une macro excel (excel XP).
J'ai fait appel à la fonction round, aucun probleme.
Ma macro fonctionne correctement, jusque là pas de prob.

Seulement j'ai besoin de l'utiliser sur un PC equipé de windows 98 et de
excel97.
Et là, c'est le drame.. la macro ne fonctionne plus du tout.. la fonction
round n'est pas reconnue, et donc fait planter la macro.... comment faire ???

Existe-t-il un patch ? ou un moyen de programmer en vba une fonction qui
fasse la meme chose ?

Merci de votre aide
Avatar
Clément Marcotte
De toutes façons le Round() de VBA, c'est à oublier d'urgence:

http://groups.google.com/group/microsoft.public.fr.excel/browse_thread/thread/3d2d05b86fad6ec8/fafa1c0562c8dd52?lnk=st&q=round+application+vba+excel+97+group:microsoft.public.fr.excel&rnum=4&hl=fr#fafa1c0562c8dd52


http://groups.google.com/group/microsoft.public.fr.excel/browse_thread/thread/f6b3704887685470/8bc98b6d3946d762?lnk=st&q=round+application+vba+excel+97+group:microsoft.public.fr.excel&rnum=8&hl=fr#8bc98b6d3946d762

"Vincent" a écrit dans le message de
news:
Voilà, j'ai créé sous VBA une macro excel (excel XP).
J'ai fait appel à la fonction round, aucun probleme.
Ma macro fonctionne correctement, jusque là pas de prob.

Seulement j'ai besoin de l'utiliser sur un PC equipé de windows 98 et de
excel97.
Et là, c'est le drame.. la macro ne fonctionne plus du tout.. la fonction
round n'est pas reconnue, et donc fait planter la macro.... comment faire
???

Existe-t-il un patch ? ou un moyen de programmer en vba une fonction qui
fasse la meme chose ?

Merci de votre aide


Avatar
PMO
Bonjour,

Une piste avec le code suivant à copier dans un module standard.

1) Lancez la macro PMO_test où le nombre arbitraire 7654321.1234567
sera arrondi par la fonction PMO_Round qui a les mêmes arguments
que la fonction ROUND d'Excel. Une boucle définit le nombre de décimales de
0 à 7.
2) Une MsgBox affiche
a) le résultat par Application.WorksheetFunction.Round
b) le résultat par PMO_Round

Les résultats semblent s'équivaloir.

Faites plusieurs tests différents et s'ils s'avèrent vous n'aurez plus qu'à
remplacer Application.WorksheetFunction.Round par PMO_Round dans votre code.

'*************
Sub PMO_test()
Dim x#
Dim i&
x# = 7654321.1234567 'arbitraire pour le test
For i& = 0 To 7 'de 0 à 7 décimales
MsgBox "Round = " & Application.WorksheetFunction.Round(x#, i&) & _
vbCrLf & "PMO_Round = " & PMO_Round(x#, i&)
Next i&
End Sub

Private Function PMO_Round(x As Double, ByVal nbDecimal As Integer) As Double
Dim var
If nbDecimal = 0 Then
var = CLng(x)
Else
var = x
var = Mid(var, InStr(1, var, ".") + 1)
var = Mid(var, 1, nbDecimal) & "." & Mid(var, nbDecimal + 1)
var = CLng(var)
var = var / 10 ^ nbDecimal
var = CLng(x) + var
End If
PMO_Round = CDbl(var)
End Function
'*************

Cordialement.
--
PMO
Patrick Morange



Voilà, j'ai créé sous VBA une macro excel (excel XP).
J'ai fait appel à la fonction round, aucun probleme.
Ma macro fonctionne correctement, jusque là pas de prob.

Seulement j'ai besoin de l'utiliser sur un PC equipé de windows 98 et de
excel97.
Et là, c'est le drame.. la macro ne fonctionne plus du tout.. la fonction
round n'est pas reconnue, et donc fait planter la macro.... comment faire ???

Existe-t-il un patch ? ou un moyen de programmer en vba une fonction qui
fasse la meme chose ?

Merci de votre aide