VBA - Itération qui ne marche pas
Bonjour à toutes et à tous,
Je fais mes premier pas dans le monde du VBA.
J'ai un petit problème sur les commandes que écrites, mon itération ne marche pas pourriez vous m'aider ?
Je vous décrit ce que je veux faire :
Dans ma feuille (accueil) j'ai défini un paramètre variable (au choix de l'utilisateur du fichier) , cette variable est ma valeur souhaiter pour mes calculs.
Dans ma feuille "outil de calcul" se trouve une valeur issue d'un calcul antérieur.
Mon but est de multiplier la valeur dans "Outil de calcul" par un coefficient jusqu’à atteindre ma valeur souhaité ( la variable de la feuille "Accueil")
Si cette condition n'est pas atteinte , le calcul continue.
Voici mes lignes de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| Sub Boucles()
Dim Capa As Integer
Dim Pas As Double
Dim x As Double
Dim li As Integer
Dim li1 As Integer
Dim col As Integer
Dim col1 As Integer
Dim DoDM As Integer
Pas = 0.01
li = 66 'li,col" la valeur ici d'un calcul , cette valeur est a multiplier par un coéfficient pour obtenir ma valeur souhaité dans la feuille (Acceuil)
col = 3
li1 = 61
col1 = 3
DoDM = Sheets("Accueil").Range("g41") ' ma valeur souhaité dans la feuille "Accueil"
For x = 0.6 To 0.7 'Pas
If (Sheets("Outil de calcul").Range("d60") <> DoDM) Then ' Condition sur la valeur de DoD moyen souhaité par rapport à la Capa de base (tant que la cellule d60 est différente de la variable entrée dans la feuille "Accueil" , selectionne la cellule c66 dans "Outil de calcul" et la multiplie par le pas jusqu'à atteindre la valeur souhaitée dans "Acceuil"
Sheets("Outil de calcul").Select
Sheets("Outil de calcul").Range("C66").Value = Cells(li1, col1) * (x + Pas) ' Multiplie la cellule C61 (capa bat centralisée par le pas)
Else
End If
Next
Sheets("Outil de calcul").Select
Range("C62").Select
ThisWorkbook.RefreshAll
ThisWorkbook.RefreshAll
ThisWorkbook.RefreshAll
Sheets("Outil de calcul").Select
End Sub |
Pourriez vous m'aider s'il vous plait ?
Merci d'avance
Problème d'itération - encore
comme de bien entendu, Merci pour ta réponse
Effectivement
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| Sub Boucles()
Dim Capa As Integer
Dim Pas As Double
Dim x As Double
Dim li As Integer
Dim li1 As Integer
Dim col As Integer
Dim col1 As Integer
Dim DoDM As Integer
Pas = 0.01
li = 66
li1 = 61
col = 3
col1 = 3
DoDM = Sheets("Accueil").Range("g41")
'Capa = Sheets("Outil de calcul").Range("C61").Value
For x = 0.5 To 1 Step 0.01 'Pas
If (Sheets("Outil de calcul").Range("d60") <> DoDM) Then ' Condition sur la valeur de DoD moyen souhaité par rapport à la Capa de base
Sheets("Outil de calcul").Select
Sheets("Outil de calcul").Range("C66").Value = Cells(li1, col1) * (x) ' Multiplie la cellule C61 (capa bat centralisée par le pas
Else
End If
Next
Sheets("Outil de calcul").Select
Range("C62").Select
ThisWorkbook.RefreshAll
ThisWorkbook.RefreshAll
ThisWorkbook.RefreshAll
Sheets("Outil de calcul").Select
End Sub |
A l'air de marché
cependant elle ne s’arrête pas à ma valeur souhaité. Je m'explique :
Dans la feuille (Accueil) : J'ai fixé ma variable à 60% (mon DoDM dans mon code)
Citation:
c'est la valeur que je souhaite atteindre
Dans la feuille ("Outil de calcul") J'ai calculé un DoD via des formules ( valeur variable ex : 40%)
Dans cette même feuille, J'ai une valeur de ma Capa
Citation:
la ligne li1 et colonne col1
que je souhaiterai multiplier par un coéff
Citation:
ici For x = 0.5 To 1 Step 0.01
jusqu'à obtenir une valeur de ma capacité qui satisfasse un DoD de 60%
Citation:
valeur fixée dans la feuille "Acceuil"
.
Comment faire pour arrêter l'itération une fois la valeur de 60% atteinte ?