Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
832to836
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel Solver

Excel Solver
08.01.2007 13:52:23
Stephan
Ich habe ein kleines Programm geschrieben in dem der Excel Solver vorkommte.
Wenn ich das Programm starte erscheint beim ersten mal folgende Fehlermeldung:
Solver: Ein unerwarteter interner Fehler ist aufgetreten.
Kehre ich danach in die Excel-Oberfläche zurück und löse die Berechnung einmal manuell mit dem Solver und starte das Programm dann neu, dann funktioniert es.
Es wäre halt gut wenn es gleich funktionieren würde.
Der Programmcode lautet folgendermaßen:
Wobei die Berechnung erst ab dem Punkt ('Berechnung Fond) beginnt.
Die Fehlermedlung erscheint in der Zeile
'Solver
SolverOk SetCell:=Range("IU5"), MaxMinVal:=2, ValueOf:=0, ByChange:=Range("IU2")
Hat irgend jemand eine Idee dazu?
Danke.
lg Stephan
Option Explicit
Sub vol()
Dim b0, b1, varianz, merk, summev, sum, std, sa, gewicht, standardab As Double
Dim summe, summeb, standardabb, summel As Double
Dim k, i, j, zähler, zähler1 As Integer
Dim neu1 As ChartObject
Dim diagram1 As Series
'Maske
Worksheets(zählerb).Select
Worksheets(1).Select
Range("A5:A" & (gesamtzahl + 5)).Select
Selection.Copy
Worksheets(zählerb).Select
Range("A5").Select
ActiveSheet.Paste
Range("A1") = "Gewicht="
Range("B1") = "0,97"
Worksheets(1).Select
Range("C2:C" & (gesamtzahl + 5)).Select
Selection.Copy
Worksheets(zählerb).Select
Range("B2").Select
ActiveSheet.Paste
Range("B2") = "Fond"
Worksheets(anzahlblätter + 1).Select
Range("F1:F" & (gesamtzahl + 5)).Select
Selection.Copy
Worksheets(zählerb).Select
Cells(1, 3).Select
ActiveSheet.Paste
Worksheets(1).Select
Range("D2:D" & (gesamtzahl + 5)).Select
Selection.Copy
Worksheets(zählerb).Select
Range("D2").Select
ActiveSheet.Paste
Cells(2, 4) = "Fond"
Cells(3, 4) = "Mittelwert"
Worksheets(anzahlblätter + 1).Select
Range("G1:G" & (gesamtzahl + 5)).Select
Selection.Copy
Worksheets(zählerb).Select
Cells(1, 5).Select
ActiveSheet.Paste
Range("E2") = "Benchmark"
Range("E3") = "Mittelwert"
'Berechnung Fond
gewicht = Cells(1, 2)
b0 = 0
b1 = 0
zähler = fenster
Range("F2") = "Fond"
Range("F3") = "Mittelwert"
Range("F4") = "gewichtet"
Range("G2") = "Fond"
Range("G3") = "Varianz"
Range("G4") = "gewichtet"
Range("H2") = "Fond"
Range("H3") = "Standardabw."
Range("h4") = "gewichtet"
For k = 1 To (gesamtzahl - fenster)
Range("IU1") = "b0"
Range("IU2") = 0.5
Range("IV1") = "Gewicht"
Range("IV2") = gewicht
Range("IV6") = "Formel"
Range("IU4") = "Summe"
zähler1 = zähler
For i = 1 To zähler
ActiveSheet.Cells((6 + i), 256).Formula = "=(B" & (6 + i) & "*IV2^(" & zähler1 & "/2)-IU2*IV2^(" & zähler1 & "/2))^2"
zähler1 = zähler1 - 1
Next i
ActiveSheet.Cells(5, 255).Formula = "=sum(IV" & 7 & ":IV" & 6 + zähler & ")"
'Solver
SolverOk SetCell:=Range("IU5"), MaxMinVal:=2, ValueOf:=0, ByChange:=Range("IU2")
'Zeig nicht die Dialogbox :=true
SolverSolve UserFinish:=True
b0 = Range("IU2")
summev = 0
varianz = 0
std = 0
summel = 0
sa = 0
If k = 1 Then
varianz = (Cells((6 + zähler), 2) - b0) ^ 2
Else
varianz = ((1 - gewicht) / (1 - gewicht ^ (k - 1))) * (Cells((6 + zähler), 2) - b0) ^ 2 + ((gewicht - gewicht ^ (k - 1)) / (1 - gewicht ^ (k - 1))) * Cells((5 + zähler), 7)
End If
merk = varianz
std = varianz ^ (1 / 2) * (52) ^ (1 / 2)
Cells((6 + zähler), 6) = b0 * 52
Cells((6 + zähler), 7) = varianz
Cells((6 + zähler), 8) = std
zähler = zähler + 1
'Beendet Solver und setzt das Resultat zurück :=2; behält das Resultat:=1
SolverFinish KeepFinal:=2
'löschen der zwei Spalten
Range("IU:IV").Clear
Next k

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Solver
10.01.2007 17:08:33
Jens
Hi,
teste mal im Editor, ob ein Verweis auf den Solver gesetzt ist, wahrscheinlich ist das nicht so.
mfg Jens
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige