Anzeige
Archiv - Navigation
1708to1712
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
Inhaltsverzeichnis

Erstellung einer Schleife für eine Zielwertsuche1

Erstellung einer Schleife für eine Zielwertsuche1
20.08.2019 16:09:45
Oliver
Hallo Leute,
im Rahmen meiner Masterarbeit muss ich einen Datensatz an Messwerten auswerten. Ich möchte dabei eine Zielwertsuche durchführen über knapp 40.000 Zeilen. Mir ist bewusst, dass ich dafür eine Schleife bzw. ein Makro brauche. Nun hab ich folgendes Problem ich hab bisher absolut keine Erfahrung mit VBA, wenn ich sage keine dann meine ich wirklich null Erfahrung. Ich hab mir jetzt einen groben Überblick verschafft und denke, dass die Umsetzung meiner Schleifenanwendung nicht all zu kompliziert sein dürfte. Nur schleichen sich immer ein paar Fehler bzw. Missverständnisse ein (fängt schon beim Syntax an). Deswegen bitte ich um eure Unterstützung !
Anwendungsfall: Ich habe 40.000 Messwerte von je drei Größen. Aus diesen Größen und entsprechenden weiteren Paramtern habe ich ein Polynom dritten Grades erstellt (Zustandsgleichung). Die Zielfunktion bzw. die Zustandsgleichung steht in Spalte "R" in den Zeilen 2-40332. Die entsprechende zu verändernde Variable X steht in Spalte "X" in den Zeile 2-40332 und ist ein geratener Wert. Die Variable X soll so geändert werden, dass die Zielfunktion den Zielwert 0 annimmt.
Ich wäre sehr dankbar, wenn mir jemand dabei helfen könnte. Bei Bedarf kann ich auch die Excel-Datei zukommen lassen. Über eine positive Rückmeldung würde ich mich freuen.
Mit besten Grüßen
Euer Oli :)

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: in XL fest eingebaut
20.08.2019 16:15:49
Fennek
Hallo,
bevor du es mit VBA versucht, teste die XL-Funktion "Zielwertsuch" im Menü "Daten".
mfg
AW: in XL fest eingebaut
20.08.2019 16:21:19
Oliver
Hallo Fennek,
habe ich bereits getan und läuft auch super :)
Nur werde ich nicht für über 40.000 Werte jedes mal neu die "Zielwertsuch-Funktion" manuell starten ! Deswegen bin ich ja auf VBA gestoßen, weil ich denke, dass ich mir eine Schleife programmieren muss, die dann die Zielwertsuche für jeden Wert durchläuft.
Beste Grüße
Oli
AW: in XL fest eingebaut
20.08.2019 16:25:58
Daniel
Hi
kennst du den Makrorecorder?
damit kannst du dir den Code, den man braucht um eine Zielwertberechnung durchzuführen, aufzeichnen.
das dann in eine Schleife einzubauen, welche es für jede Zeile durchführt, ist dann keine große Sache.
Dabei können wir dir dann helfen.
Gruß Daniel
Anzeige
AW: in XL fest eingebaut
20.08.2019 16:50:17
Oliver
Hey Daniel,
vom Makrorecorder hab ich noch nichts gehört. Wenn ich dich richtig verstehe, ist der Makrorecorder ein weiteres eingebautes Tool in Excel mit dem ich mir die passende Zielwertsuche erstellen kann und die dann über alle 40.000 Werte laufen lassen kann ? Falls ja, wäre die Herangehensweise mit der Schleife doch überflüssig ?
Ich habe bereits eine funktionierende Zielwertsuche, also für den Fall, dass ich die Zielwertsuche in nur einem Fall (eine Zeile) anwende, funktioniert das einwandfrei. Problem ist das übertragen auf 40.000 Zeilen. Und da denke ich, dass ich die Zielwertsuche in eine Schleife einbauen muss. Zumindest ist das meine Vorstellung, aber wie gesagt ich bin ein Anfänger.
Grüße
Oli
Anzeige
AW: in XL fest eingebaut
20.08.2019 16:59:00
Daniel
deine Idee ist da schon ganz richtig.
du musst die Zielwertsuche auf 40.000 Zeilen anwenden.
dazu wirst du ein Makro benötigen, welches die Zielwertsuche mit allen 40.000 Zeilen nacheinander durchführt und das funktioniert mit einer Schleife.
der Makrorecorder ist ein kleines Werkzeug, welches die Aktionen die du gerade ausführst, als VBA-Code mitschreibt.
wenn man also nicht weiß, wie eine bestimmte Aktion aus dem Excelmenü in VBA programmiert werden muss, kann man sich hierbei vom Makrorecorder helfen lassen, in dem man die Aktion ausführt, aufzeichnet und sich dann den aufgezeichneten Code im VBA-Editor anschaut.
die aufzeichnung ist in der Regel noch kein lauffähiges Makro und bedarf noch der Überarbeitung, weil auch viel überflüssiges aufgezeichnet wird, aber zumindest kennt man dann mal den Befehl für die Aktion und kann sich schnell zur Hilfeseite mit den ausführlicheren Informationen weiterleiten lassen, in dem man den Befehl mit dem Cursor markiert und F1 drückt.
das ist dann mal die Basis für dein Makro, die Schleife ist dann klassisches Basic, bzw da brauchst du unsere Hilfe dann eher weil die Schleife sich ja nicht aufzeichnen lässt.
https://www.online-excel.de/excel/grusel_vba.php?f=6
Gruß Daniel
Anzeige
AW: in XL fest eingebaut
20.08.2019 22:24:33
Oliver
Hey,
ich hab den Vorschlag mit dem Makro-Recorder verfolgt und würde wie folgt weiter vorgehen und habe folgenden Code erlangt:
Range("R2").GoalSeek Goal:=0, ChangingCell:=Range("W2")
Mein Idee wäre jetzt diesen Syntax in eine For-Schleife zu verpacken:
Sub ZWSuche()
Dim i As Integer
For i=2 to 40000
Range(i,18).GoalSeek Goal:=0, ChangingCell:=Range(i,24)
next i
End Sub
Ich hoffe der Syntax ist nicht komplett Falsch. Ich würde mich über eine Rückmeldung freuen.
Ich habe hier noch einen Link in dem ich eine abgespeckte Version des Excel-Spreadsheet hochgeladen habe. Ich hoffe man kann das Datei-Format öffnen: https://www.herber.de/bbs/user/131535.txt
Grüße Oli
Anzeige
AW: in XL fest eingebaut
21.08.2019 07:17:44
Oliver
Ich habe hier jetzt einen Ausschnitt aus der Excel-Datei: https://www.herber.de/bbs/user/131538.xlsm
Ziel ist die Zielfunktion in Spalte R durch das ändern der Variable in Spalte X auf den Zielwert 0 zu bekommen.
Grüße Oli
AW: in XL fest eingebaut
21.08.2019 07:37:42
onur
Entweder Range(„A1“) ODER cells(1,1) - wie in meinem Beispiel - eine Mischung wie Range(1,1) gibt es nicht .
Und Range(„A1“) ist nicht schleifentauglich für Spalten - für Zeilen: Range („A“ & i ).
AW: in XL fest eingebaut
21.08.2019 07:55:17
Oliver
Hey Onur,
ich hab die Anpassungen entsprechend vorgenommen:
Private Sub ZWSuche()
Dim i
For i = 2 To 40000
Cells(i, 18).GoalSeek Goal:=0, ChangingCell:=Cells(i, 24)
Next i
End Sub
Leider wird mir immer ein "Laufzeitfehler 1004, Anwendungs- oder objektdefinierter Fehler" angezeigt.
Ich kann mir vorstellen, dass mein Fehler eventuell in der allgemeinen Anwendung von VBA liegt und nicht im Skript. Wie gesagt, ich hatte vorher noch nie Berührungspunkte mit VBA.
Danke schonmal im voraus und Grüße
Oli
Anzeige
AW: in XL fest eingebaut
21.08.2019 08:06:38
onur
Wo ist denn der Button zum Starten des Makros?
Auf dem selben blatt wie die 40000 zeilen?
AW: in XL fest eingebaut
21.08.2019 08:11:28
Oliver
Ich hab nie bewusst einen Button eingebaut. Ist das zwingend notwendig und falls ja wie ? Ich hab mir das so vorgestellt, dass ich die Schleife anlege und die durch den "Play"-Button in der VBA-Maske über meinen Datensatz laufen lassen kann.
AW: in XL fest eingebaut
21.08.2019 08:34:51
Oliver
Ich habe das Problem behoben, zwar ohne Button aber immerhin Läuft jetzt die Zielwertsuche über die Schleife !
Vielen Dank Leute ! Ihr habt mir echt geholfen. Der Button wäre jetzt noch das i-Tüpfelchen
AW: in XL fest eingebaut
21.08.2019 08:52:45
onur
Weil, wenn das Blatt mit den 40000 Zeilen bei Makrostart NICHT das aktive Blatt ist, versucht das Makro bei dem Blatt, das aktiv ist, alles durchzuführen.
Du kannst aber vor Cells(....) das gemeinte Blatt mit angeben- z.B.
Tabelle1.Cells(...), und zwar bei JEDEM Cells(...).
oder
Sheets(„MeinBlatt“).cells(...)
Dann müsste es laufen ( wenn es DARAN liegt) .
Anzeige
AW: Erstellung einer Schleife für eine Zielwertsuche1
20.08.2019 17:04:50
Oliver
Hallo Leute,
ich habe den gleichen Beitrag ins VBA-Forum gepostet. Es war mich nicht bewusst, dass Cross-Posting gekennzeichnet werden sollte.
Grüße Oli
AW: Erstellung einer Schleife für eine Zielwertsuche1
20.08.2019 17:23:34
Daniel
Hi
und was hast du dort schon für Antworten erhalten?
ich würde mir diese gerne anschauen.
setzte Bitte auch den Link auf dieses Forum und deinen Beitrag hier herein.
Gruß Daniel
AW: Erstellung einer Schleife für eine Zielwertsuche1
20.08.2019 17:19:19
onur
Hi Oli,
Hier ein primitives Beispiel mit Schleife - es dürfte kein Problem sein, das ganze anzupassen.
https://www.herber.de/bbs/user/131529.xlsm
AW: Erstellung einer Schleife für eine Zielwertsuche1
20.08.2019 22:49:02
Oliver
Hey Onur,
hab es so ähnlich probiert bekomme aber folgenden Fehlermeldung:
Laufzeitfehler "10004".:
Der Bezug ist ungültig.
Eventuell kann man den Link öffnen (bin mir nicht ganz sicher welche Datei-Formate ich hier nutze kann):
https://www.herber.de/bbs/user/131537.html
Grüße Oli
AW: Erstellung einer Schleife für eine Zielwertsuche1
20.08.2019 23:42:46
onur
xlsx, xlsm z.B.
Anzeige
AW: Erstellung einer Schleife für eine Zielwertsuche1
20.08.2019 23:44:23
onur
eine Exceldatei - DEINE Datei ist nicht lesbar.
AW: Erstellung einer Schleife für eine Zielwertsuche1
21.08.2019 07:14:33
Oliver
https://www.herber.de/bbs/user/131538.xlsm
So Jetzt hat es geklappt. Hier ein kleiner Ausschnitt: Ich möchte die Zielfunktion in Spalte R durch das verändern der Variable in Spalte X auf den Zielwert 0 bringen.
Grüße Oli
AW: Beispieldatei
20.08.2019 18:24:01
Fennek
Hallo,
viele, vermutliche unnütze Worte, eine Beispieldatei mit 5-10 Zeilen, einmal mit dem korrekten Ergebnis, wäre besser.
mfg

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige