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

VB 6 et antérieur Discussion :

VBscript erreur dans un programme VB6


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut VBscript erreur dans un programme VB6
    bonjour à tous!
    dans un programme VB6, je voudrais écrire f(x) une fonction littérale de X dans une TextBox, et pour différentes valeurs de la variable, je voudrais calculer la valeur de f(x) qui sera utilisée dans la suite du programme
    Pouvez-vous m'aider ?
    voici la partie de programme qui "plante" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function Y(ByVal equation As String, x) As Single
     Dim r As New ScriptControl
        r.Language = "VBscript"
        Y = r.Eval(Replace(equation, "X", x))
    End Function
    merci

  2. #2
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut VBscript erreur en VB6
    Je m'aperçoit que je n'ai pas été suffisamment précis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function Y(ByVal equation As String, x) As Single
     Dim r As New ScriptControl
        r.Language = "VBscript"
        Y = r.Eval(Replace(equation, "X", x))
    End Function
    L'erreur a lieu sur 'New' message: "utilisation incorrecte du mot clé new"
    J'écris donc la fonction avec un X majuscule et je comptais l'évaluer après remplacement par un minuscule comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        For i% = 0 To 1000
        t$ = Str$(a + (b - a) * i% / 1000)
        g(i%) = Y(Text1(0).Text, t$)
        Next

  3. #3
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Bonjour,
    L'erreur a lieu parce que la référence à ScriptControl n'a pas été déclarée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Dim r As Object
     
        Set r = CreateObject("MSScriptControl.ScriptControl")
        If TypeName(r) <> "Nothing" Then
            r.Language = "VBscript"
            Y = r.Eval(Replace(equation, "X", x))
        End If

  4. #4
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut VBscript + VB6 + erreur
    Un grand merci à DarkVader
    cela fonctionne !
    Par contre, trop nouveau, je n'ai pas encore trouvé comment mettre "RESOLU"

  5. #5
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut VB6+erreur VBscript
    Encore une fois trop vite !
    j'avais indiqué 'RESOLU', mais je m'aperçois que la discussion n'est pas tout à fait close
    en effet la fonction Y = r.Eval(Replace(equation, "X", x))
    est affreuse comme imprécision
    j'ai testé pour cos(X) de 0 à 3.14159 et les valeurs intermédiaires trouvées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i% = 0 To 1000
        t$ = Str$(a + (b - a) * i% / 1000)
        g(i%) = Y(Text1(0).Text, t$)
        Next
    g(i%) devrait me donner les valeurs de cos(X), mais les résultats sont totalement imprécis, je ne vois pas pourquoi ?
    pouvez-vous encore m'aider un peu plus
    merci

  6. #6
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut VB6 + VBScript dernier message
    bien sûr que je vais trop vite !
    le pb ne vient pas de la fonction Y , mais parce que je faisait apparaître la réponse dans une textbox trop courte et comme celle-ci compaorte pas mal de chiffres après la virgule, je ne voyais pas tout.
    J'ai réglé le pb en faisant un arrondi sur le résultat

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

Discussions similaires

  1. Exo, erreur dans le programme - AIDE
    Par GENgis_- dans le forum C++
    Réponses: 6
    Dernier message: 28/10/2006, 14h11
  2. [Help] Erreurs dans mon programme
    Par Tacha dans le forum Langage
    Réponses: 13
    Dernier message: 02/10/2006, 13h57
  3. erreur dans un programme
    Par krole57 dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/06/2006, 14h30
  4. Erreur dans un programme php pour une connexion à une bdd
    Par gaetan.tranvouez dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/06/2006, 21h06
  5. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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