IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

probleme de renvoi de variant ou d'objet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut probleme de renvoi de variant ou d'objet
    Bonsoir ,j'ai écrit cette fonction et cette macro :

    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
    Function valeurPuissanceBis(ByVal x As Double, ByVal n As Long) As Double
    If x > 0 And n > 0 Then
        If (n Mod 2) = 0 Then
        valeurPuissanceBis = valeurPuissanceBis(x * x, n / 2)
    Else
        valeurPuissanceBis = 1
    End If
    End Function
     
     
    Sub puisslo()
    Dim m As Double, n As Long
    m = Application.InputBox("Entre une valeur de x", Type:=1)
    n = Application.InputBox("Entre une valeur de n", Type:=1)
    MsgBox = "le résultat de l'opération est" & valeurPuissanceBis(m, n)
    End Sub
    et j'ai ce message d'erreur à la compilation je ne comprends pas :

    un appel de fonction dans la partie gauche de l'affectation doit renvoyer variant ou object .

    Le probleme est dans la macro je pense au msgbox , vous en voyez un vous ?

    merci

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    Il me semble qu'il te manque un End If dans ta fonction valeurPuissanceBis...

    Je dis ça parce que j'ai appris à me méfier des raccourcis de langage et de leurs effets imprévisibles.

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    Et enlève le signe = après le MsgBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox = "le résultat ...

    bonne soirée
    michel

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    ok mais c'est cuieux , mon code de fonction est bon et elle me renvoit tjs le résultat 0 c'est pas normal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function valeurPuissanceBis(ByVal x As Double, ByVal n As Long) As Double
    If n > 0 Then
        If (n Mod 2) = 0 Then
        valeurPuissanceBis = valeurPuissanceBis(x * x, n \ 2)
        End If
    Else
        valeurPuissanceBis = 1
    End If
    End Function

  5. #5
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    Je ne vois pas pourquoi tu penses que ta fonction est bonne.
    Il me semble normal qu'elle renvoie toujours 0 : dès que n est impair.
    Et quelque soit la valeur n initiale, à force de la diviser par 2, elle passe toujours par une valeur impaire qui arrête la récursivité et renvoie la valeur 0 qui est répercutée aux niveaux d'appels.

    PGZ

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    je comprends bcp mieux , merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme utilisation d'activeX, taille de l'objet
    Par Tiéry dans le forum Interfaces Graphiques
    Réponses: 12
    Dernier message: 08/01/2009, 11h05
  2. Probleme de renvoi au shell
    Par firemax dans le forum C
    Réponses: 9
    Dernier message: 11/01/2008, 07h41
  3. objet : probleme pour attribuer le nom a un objet
    Par levac dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 17/07/2007, 10h36
  4. VBA Access probleme de renvoi
    Par darkspoilt dans le forum VBA Access
    Réponses: 4
    Dernier message: 19/06/2007, 15h42
  5. Probleme de renvoi
    Par esca11 dans le forum Langage
    Réponses: 2
    Dernier message: 20/08/2006, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo