Code VBA: problème

Bonjour,

Je suis désolée si je suis maladroite ou imprécise dans mes questions mais je débute en VBA.

Je suis en train de suivre un cours VBA sur Coursera et le code suivant nous est proposé:

Option Explicit
Dim pi As Double
--------------------------------------------------------------

Sub Sphere()
Dim R As Double, Area As Double, Volume As Double, pi As Double
pi = 4 * Atn(1)
R = InputBox("Please enter radius:")
Area = 4 * pi * R ^ 2
MsgBox ("Surface area of the sphere is " & FormatNumber(Area, 1) & ".")
Volume = SphereVolume(R)
MsgBox ("Volume of the sphere is " & FormatNumber(Volume, 1) & ".")
End Sub

Function SphereVolume(rad As Double) As Double
SphereVolume = 4 / 3 * pi * rad ^ 3
End Function

Sur la vidéo du prof, ça va tout seul, on donne le rayon de la sphère et on obtient l'aire puis le volume.

Quand j'essaie chez moi, j'obtiens bien l'aire de la sphère mais 0.00 pour le volume...
Et il me semble que c'est logique d'avoir 0.00 car la variable rad n'est pas renseignée...

Vous en pensez quoi? Pourquoi ça marche avec le prof et pas chez moi?

Et ai-je raison de penser que le problème vient de "rad"?

Un grand merci pour vos réponses

Bonjour,

Chez moi et Excel 365, le souci provient apparemment de la déclaration de pi en tête de module.

Sinon Utiliser WorksheetFunction.Pi() au lieu de pi=4 * Atn(1)

Option Explicit

Sub Sphere()
Dim R As Double, Area As Double, Volume As Double, pi As Double
    pi = 4 * Atn(1)
    R = InputBox("Please enter radius:")
    Area = 4 * pi * R ^ 2
    MsgBox ("Surface area of the sphere is " & FormatNumber(Area, -1) & ".")
    Volume = SphereVolume(R)
    MsgBox ("Volume of the sphere is " & FormatNumber(Volume, 1) & ".")
End Sub

Private Function SphereVolume(rad As Double) As Double
Dim pi As Double
    pi = 4 * Atn(1)
    SphereVolume = 4 / 3 * pi * rad ^ 3
End Function

Bonjour,

pour compléter Jean-Eric et répondre à ta question, rad est bien renseigné puisque c'est le paramètre passé à la fonction :
Private Function SphereVolume(rad As Double) As Double
eric

Bonjour,

Un grand merci pour vos réponses rapides et précises, je comprends mieux maintenant et mon code fonctionne!

Bon dimanche

Rechercher des sujets similaires à "code vba probleme"