PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAProblemlösaren (Solver) genom VBA kodProblemlösaren (Solver) genom VBA kod
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2020-01-31 13:46
 
Hej, Skapade för ett tag sedan en VBA kod för att simulera problemlösaren. Allt fungerade bra i början, sedan lade jag till en "IF" funktion för att skapa tre olika scenarion och då funkade allt okej till en början. Två av mina tre "IF" scenarion fungerade. Nu fungerar ingenting och jag vet inte varför. Min kod ser ut enligt nedan:
Sub XXXX_Calculator()

Worksheets("OOOOO").Activate

If Cells(4, 7) = "X1" Then

SolverOk SetCell:="$E$33", MaxMinVal:=3, ValueOf:="I5", ByChange:="$I$6", Engine _ :=1, EngineDesc:="GRG Nonlinear"

ElseIf Cells(4, 7) = "X2" Then

SolverOk SetCell:="$E$33", MaxMinVal:=3, ValueOf:="I5", ByChange:="$I$4", Engine _ :=1, EngineDesc:="GRG Nonlin1ear"
SolverAdd CellRef:="E42", Relation:=2, FormulaText:="I6"

ElseIf Cells(4, 7) = "X3" Then

SolverOk SetCell:="$E$33", MaxMinVal:=3, ValueOf:="I5", ByChange:="$I$4", Engine _ :=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="E33", Relation:=2, FormulaText:="I5"
End If

SolverSolve

SolverReset

Application.Calculation = xlAutomatic

End Sub

Felmeddelandet som jag får upp lyder: Fel i modellen, kontrollera celler och begränsningar. Några celler som inte är variabla är kanske markerade som heltal, binära eller allaolika.

Kan tillägga att när jag kör problemlösaren manuellt genom verktygsfältet med samma variabler så funkar allt perfekt.

Tacksam för all hjälp!
Nytt inlägg
 2020-02-04 08:55
 
 Ändrad av Christian  på 2020-02-04 09:57:02
Hej hej

Solvern verkar kräva add-in för att kunna testas. Så du får nöja dig med att jag granskar din bifogade kod :).

Engine:=1, EngineDesc:="GRG Nonlinear"
Blir redundant då Engine 1 motsvarar GRG nonlinear som lösningsmetod. Välj en av dessa, ta bort den andra.

EngineDesc:="GRG Nonlin1ear"
Stavfel, andra elseif satsen.

SetCell:="$E$33"

Nu skickar du endast en sträng till setcell. Du behöver skriva Range("E33"), det finns fler förekomster av detta. Ändra samtliga dina cellreferenser till Range("cell"), så att du skickar objektet av cellen, och inte bara cellens adress som sträng.

Engine _, Underscore brukar användas för att bryta rad. Detta fungerar dock endast i kombination med ett & tecken. Ta bort _.

Sist men kanske inte minst, är att din jämförelse: If Cells(4, 7) = "X1" Then, är känslig för stora och små bokstäver. Du kan skriva:

If ucase(Cells(4, 7)) = "X1" Then

Så tvingar den text i cell(4,7) till stora bokstäver innan jämförelse.

Kör gärna kompilatorn under fliken felsök i din editor, så får du hjälp att hitta fel..

Och sedan en ytterligare notering utanför din kod. Microsoft har just uppdaterat office 365, hur detta slår på excel och vba är inte helt tydligt än, men helt buggfritt är det inte :).

Mvh
Christian




Nytt inlägg
 2020-02-04 12:20
 
Tack för din Feedback Christan. Jag får dock fortfarande följande fel:

- "Fel i modellen. Kontrollera att alla celler och begränsningar är giltiga"
- "Några celler som inte är variabla celler är kanske markerade som Heltal, Binär eller AllaOlika"
Nytt inlägg
 2020-02-04 13:14
 
Googlade en del. Verkar som fler har haft samma fel. Dessvärre så är felmeddelandet inte beskrivande för vad som gått fel. Olika fel har varit:versionsproblem fel input, korrupta filer, sammanslagna celler m.m.
/c
Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAProblemlösaren (Solver) genom VBA kodProblemlösaren (Solver) genom VBA kod

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter