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 :

Calcul de la valeur X avec test en boucle if then goto [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2013
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Calcul de la valeur X avec test en boucle if then goto
    Bonjour tout le monde

    Je suis vraiment débutant en VBA ...
    Mon problème est de trouver une solution à une égalité entre deux termes en changeant la valeur de X

    Exemple très très simple : X + 1 = 5 - X

    je dois commencer par X= 0 , ensuit je test l'egalité si Vrai Fin et je garde la valeur de X comme solution

    Si non je dois ajouter à X la valeur s = 0,001 et je reviens vers le test de l'égalité ainsi de suite .

    voici ce que je souhaite comme algorithme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    x = 0  
    s = 0,001
     
    if  X + 1   =  5 - X   ,  then  x  est la solution   and    Goto to  end 
     
    Else  X = X+s  and    Goto to  la ligne IF
     
    end
    Merci d'avance pour votre aide

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 433
    Points
    12 433
    Par défaut
    Bonjour
    Etrange manière de faire des mathématiques à tâtons.
    Dans ton exemple :
    X + 1 = 5 - X -->> 2X = 5-1 -->> X = 4/2 -->> X = 2
    Et si tu tiens à résoudre "à tâtons", je ne vois pas non plus la difficulté : incrémenter (ou diminuer) x de ta petite valeur tant que le résultat (la différence entre les 2 membres de ton équation) se rapproche de 0 et cesser lorsqu'il s'en éloigne à nouveau.
    Tout cela n'est que du B.A.BA

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2013
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Merci pour votre réponse, mais la réalité de mon problème est plus compliquée que cette équation très simple que j'ai donnée comme exemple

    Pour résumer, je souhaite avoir ( si c'est possible) le code VBA qui permit de donner la solution par talonnement à ce genre de problème .....

    ou de m'orienter vers un site pour plus de lecture en matière de vba

    Merci d'avance et bonne journée

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 433
    Points
    12 433
    Par défaut
    Je crois t'avoir répondu plus haut :
    Citation :
    Et si tu tiens à résoudre "à tâtons", je ne vois pas non plus la difficulté : incrémenter (ou diminuer) x de ta petite valeur tant que le résultat (la différence entre les 2 membres de ton équation) se rapproche de 0 et cesser lorsqu'il s'en éloigne à nouveau.
    Tout cela n'est que du B.A.BA
    Qu'essayes-tu sur cette base élémentaire ? (Montre).

  5. #5
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Je te déconseille ce type de détermination du fait du problème posé par le calcul des nombres à virgule flottante.

    Pour t'en convaincre, tu peux faire ce test et regarder le résultat dans la fenêtre exécution :
    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
    Sub Test()
    Dim X_mini As Double, X_maxi As Double, X As Double
    Dim s As Double
        X_mini = 0
        X_maxi = 10
        s = 0.1
        For X = X_mini To X_maxi Step s
            Debug.Print X, X + 1, 5 - X, X + 1 - 5 + X
            If (X + 1) = (5 - X) Then
                MsgBox X & " est une solution"
                Exit Sub
            End If
        Next X
        MsgBox "Pas de solution"
    End Sub
    Voici un lien pour les explications :
    https://support.microsoft.com/fr-fr/kb/78113

    Cordialement.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2013
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Merci pour votre rapidité
    C'est exactement ma problématique
    Donc je suis convaincu maintenant
    Enfin mille mercis
    Bon week-end

  7. #7
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Points : 3 666
    Points
    3 666
    Par défaut
    Bonjour,

    tu as aussi le solveur pour résoudre ce type de problème, sans vba.
    eric

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

Discussions similaires

  1. [XL-2010] Calcul de la valeur actuelle avec vba
    Par ETOUKE dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/10/2011, 18h26
  2. Problème avec test valeur DBNull
    Par Tankian dans le forum C#
    Réponses: 2
    Dernier message: 09/12/2010, 14h55
  3. Récupérer une valeur avec test
    Par caraneige dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/07/2010, 07h58
  4. Réponses: 2
    Dernier message: 27/11/2008, 15h19
  5. test valeur bouton avec javascript
    Par barouz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/04/2007, 11h40

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