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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    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
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    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 averti
    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
    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
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    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
    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 averti
    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
    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
    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