solver wel of niet laten rekenen

Status
Niet open voor verdere reacties.

kalibeest208

Nieuwe gebruiker
Lid geworden
17 nov 2016
Berichten
4
Beste heren en/of dames,

Ik heb het volgende probleem.
ik ben bezig met een programmatje dat bepaalde waardes berekent met solver.
dat doet die meerdere keren.
Dit gedeelte werkt, maar soms hebben bepaalde gegevens geen waarde en dan wil ik graag dat de solver die over slaat.
nu heb ik in excel daar een waarde aan gegeven 0 of 100 maar ik krijg hem niet aan de gang als er 0 staat hij blijft steeds rekenen.

If Range("bp3").Value = 100 Then GoTo test1 Else GoTo test2

en dit is de regel die dat zou moeten doen.

maar wat doe ik fout.


dit is de rest van de code.


Sub solvertestgrrrrrr()

Range("bq3").Select
Range("bq3").Value = "in berekening"


test1:

Range("br3").Select
'1
SolverReset
SolverOk SetCell:="$bb$8", MaxMinVal:=3, ValueOf:=0, ByChange:="$bo$3:$bo$6", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$BO$3", Relation:=1, FormulaText:="100%"
SolverAdd CellRef:="$BO$3", Relation:=3, FormulaText:="0%"
SolverAdd CellRef:="$bo$4", Relation:=1, FormulaText:="100%"
SolverAdd CellRef:="$bo$4", Relation:=3, FormulaText:="0%"
SolverAdd CellRef:="$bo$5", Relation:=1, FormulaText:="100%"
SolverAdd CellRef:="$bo$5", Relation:=3, FormulaText:="0%"
SolverAdd CellRef:="$bo$6", Relation:=1, FormulaText:="100%"
SolverAdd CellRef:="$bo$6", Relation:=3, FormulaText:="0%"
SolverAdd CellRef:="$bo$7", Relation:=2, FormulaText:="100%"
SolverSolve UserFinish:=True
SolverReset

GoTo IZzandnieuwpoort

End

test2:

Range("bs3").Select
Range("bq3").Value = 0
Range("bq4").Value = 0
Range("bq5").Value = 0
Range("bq6").Value = 0

GoTo IZzandnieuwpoort

End

If Range("bp3").Value = 100 Then GoTo test1 Else GoTo test2

IZzandnieuwpoort:

Range("bs7").Select
Range("bq3").Value = "klaar"

End Sub

met vriendelijke groet,

Richard de Vries
 
Wat je fout doet is dat je GOTO gebruikt. Plaats de hele Sub hier en dan wil best iemand dat voor je ombouwen. GOTO is al heel lang uit den boze.
Ook die .Select dingen moet je niet gebruiken.
 
oke ik ben een beginnende gebruiker en wist niet dat goto niet eigenlijk uit den boze was maar wat wordt er dan wel voor gebruikt is dan mijn vraag.
en die .select zit er nu alleen tussen dan kon je wat zien wat die aan het doen was dat was ook het idee om die weg te laten.
 
Ipv te flipperen met GOTO kan je beter gebruik maken van gestructureerd programmeren. Denk hierbij aan IF THEN ELSE. GOTO wordt meestal gebruikt voor foutafhandeling. Als jij jouw eerste vraag beantwoord wilt hebben dan zal je de volledige code moet plaatsen en ook graag tussen codetags. En dan ook graag een voorbeeldbestandje.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan