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 :

boucle For avec multiple conditions d'arret


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 93
    Par défaut boucle For avec multiple conditions d'arret
    Bonjour,

    Je veux faire résoudre des système de trois équations à 3 inconnues dans une macro Excel, et pour ce faire, je procède a l'aide de 2 boucles For qui me déterminent mon X et mon Y. Puis en fonction de ces deux paramètres le Z est calculé à l'aide de l'une des 3 équations de mon système.

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For X = 0 To 10 Step 0.01
          For Y = 0 To 10 Step 0.01
            ZPetoile = C(X,Y)  
     
          If Application.WorksheetFunction.And(limite_precision_neg < A(X,Y,Z) , A(X,Y,Z) < limite_precision_pos , limite_precision_neg < B(X,Y,Z) , B(X,Y,Z) < limite_precision_pos) Then Exit For
          Next Y
      Next X
             Range("F66").Value = X
             Range("G66").Value = Y
             Range("H66").Value = Z
    Les fonctions A et B sont les deux premières équations de mon système et C la troisième.

    Je fais afficher les valeurs qui sont balayées par X, Y et Z et toutes les valeurs sont bien parcourues. Sauf que lorsque les conditions :
    * limite_precision_neg < B(X,Y,Z)
    * B(X,Y,Z) < limite_precision_pos
    sont validées, les valeurs de Y parcourues, évites les valeurs qui font que les conditions :
    *limite_precision_neg < A(X,Y,Z)
    *A(X,Y,Z) < limite_precision_pos
    soient validées
    dès que les première conditions (sur B(X,Y,Z)) ne sont pas validées, Y reparcours toutes les valeurs de l'intervalle que je lui ai demandé [0;10]

    Le problème c'est que, je sais que ma solution est dans cette zone esquivé par le Y, donc je ne trouve pas de solution...

    Je cherche depuis plusieurs jours et je ne sais pas comment résoudre ce problème...

    Merci d'avance

    Yves

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 93
    Par défaut
    j'ai fai un test en ne faisant varier que X et en fixant Y:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    For X = 0 To 10 Step 0.01
          Y = 2     '(j'ai choisi 2 en sachant que 2 etait l'une des solutions)   
          ZPetoile = C(X,Y)  
     
          If Abs(A(X,Y,Z) )< limite_precision_pos Then 
              If Abs(B(X,Y,Z)) < limite_precision_pos) Then 
                   Exit For
              End If 
           End If
     
      Next X
             Range("F66").Value = X
             Range("G66").Value = Y
             Range("H66").Value = Z
    et la tou ce passe bien il me trouve une solution, le pb est donc que je fasse varier X ET Y.
    le truc c'est que je ne peu pas fixer Y car je ne peu pas généraliser les système aussi facilement, 2 ne sera pas solution pour tout les système....

    Si quelqu'un a une idée sur ce qui ne va pas dans mes lignes....

    Merci

    Yves

    Bien entendu, le ZPetoile visible dans mes message précédant sont en fait des Z tout simplement...

Discussions similaires

  1. Boucle For avec condition sur doublons
    Par nyto35 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/04/2013, 11h04
  2. Réponses: 2
    Dernier message: 14/04/2010, 18h39
  3. Pb boucle [FOR] avec condition [IF]
    Par Newenda dans le forum MATLAB
    Réponses: 2
    Dernier message: 03/02/2010, 11h50
  4. Aide boucle for avec condition
    Par guigui33 dans le forum Images
    Réponses: 1
    Dernier message: 06/03/2008, 20h59
  5. boucle for avec condition
    Par Daniel Magron dans le forum Delphi
    Réponses: 4
    Dernier message: 22/01/2007, 16h18

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