Programmation de boucle For

Bonjour à tous

Je suis nouveau sur ce site et sur les forum en générale.

Si je saute le pas, c'est a cause d'un problème qui me tracasse, alors voila :

Sous excel VBA je dois programmer un calcul qui se réalise par itération, le but est de trouver la valeur qui permette de remplir une certaine condition.

Ce que je souhaite faire c'est une boucle qui s’arrête par le biais du condition ,une fonction IF, et affiche la valeur qui a permis de remplir la condition.

Voila ce que j'ai programmé et qui évidement ne marche pas.

Sub test1()

End Sub

Le probleme c'est que le calcul se lance mais ne s'arrete jamais, le curseur se change en anneau bleu et tourne sans s'arreter. Puis la feuille excel plante, je dois faire controle alt suppr. Je me doute que le programme n'arrive pas a arreter la boucle for mais je sais pas pourquoi.

Please help !!

Ca fait 3 jours que je m'arrache les cheveux sur ce truc !!

Bonjour,

Essaie ainsi :

Sub test1()
Dim PDC As Double
Const D As Integer = 1000
Dim D1 As Double, D2 As Double, DF As Double

    For PDC = 24 To 25 Step 0.1
        D1 = (PDC + 22.061) / 0.1233
        D2 = (PDC + 16.53) / 0.1958 * 3
        DF = D1 + D2
        Cells(1, 1) = "debit total calcul?"
        Cells(1, 2) = "PDC"
        If D - DF <= (0.001 * D) Then
            Cells(2, 1) = DF
            Cells(2, 2) = PDC
            Exit For
        End If
    Next PDC

End Sub

bonjour

salut au passage Jean-Eric

pourquoi ne pas utiliser Excel ?

http://www.bernardcordier.com/excel_solveur.htm

amitiés à tous

Bonjour Jean-Eric

Merci de beaucoup de votre a ide mon problème est résolu ! je peux même me permettre d'augmenter la précision de calcul

Merci encore en plus de me débloquer cela va m’être utile à l'avenir si je dois programmer d'autre calcul par itération !!

Salut tout le monde,

Juste quelque précision pour que la prochaine fois tu ne te fasses pas avoir; c'est ta déclaration de variable en Integer qui pose soucis:

  • Dans ta boucle For tu ajoutes 0.1 sur ton entier 24 du coup il est arrondi à 24 automatiquement... c'est ce qui fait ta boucle infini, cela arrive jamais à 25 ^^
  • Tes valeurs D1=>D4et DF en plus sont en entier et tu y fais des ajouts de nombre à virgule et une division, cela aurait rien donné de probant

Tu peux utiliser la touche F8 pour faire ton code ligne par ligne et du coup en mettant ta souris sur les variables ou via l'ajout d'Espion tu peux voir les valeurs de celles-ci et rapidement voir certains soucis (par exemple ici tu aurais vu que ton PDC restait à 24

Cdt,

ECG

Bonjour,

@ jmd,

La demande est :

Sous excel VBA je dois programmer un calcul qui se réalise par itération,...

J'ai donc tenté de répondre à la question posée !...

Et, j'ai semble-t-il utilisé Excel.

Sinon, la citation du jour :

Si tu donnes le couscous, donne aussi la sauce.

Proverbe africain

re

@ Jean-Eric

VBA n'est pas Excel, pas plus que Power BI n'est Excel

on fait une grave erreur en pensant que VBA est "dans" Excel.

bien d'autres langages peuvent piloter Excel (dont Python, qui mériterait de passer devant VBA).

et on se passe très bien de VBA, il est un "ingrédient" inutile et nuisible pour reprendre ton image culinaire

la sauce du couscous ce serait plutôt les TCD et Power Query.

note : je ne réponds à une question que lorsqu'elle me semble pertinente. dans tous les autres cas, je repose le problème à sa base. C'est une construction plus solide, universelle, durable, simple, et maintenable.

Microsoft a bien travaillé ces dernières années, nous offrant de magnifiques fonctionnalités. Il est dommage d'en rester à VBA qui date de...

amitiés Excelliennes

Rechercher des sujets similaires à "programmation boucle"