Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zielwertsuche mit VBA

Forumthread: Zielwertsuche mit VBA

Zielwertsuche mit VBA
30.09.2003 22:23:17
WalterK
Hallo miteinander!

Gibt es eine Möglichkeit, die Zielwertsuche automatisch nach der Eingabe
in einer Zelle einer bestimmten Spalte starten und berechnen zu lassen und dann das Ergebnis in der gleichen Zeile aber einer anderen Spalte einzutragen.

Beispiel:
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zielwertsuche mit VBA
30.09.2003 23:25:06
heinz
was ist zielwertsuche?
was ist zielwertsuche, AW
01.10.2003 00:01:39
axel.meyer
hallo heinz,

wenn du eine funktion hast, die nicht nach der variablen lösbar ist, für die du gerne ein ergebniswert hättest, dann kannst du diesen wert einfach so lange in der bestehenden gleichung variieren, bis die gleichung erfüllt ist.

bsp:

y = x·(0,5 - 3/x)^x (^für exponent)

diese gleichung kannst du nicht nach x auflösen. wenn du aber für y einen wert (zB 5) vorgegeben hast und jetzt wissen möchtest, wie groß das zugehörige x ist (zT meherer lösungen möglich!), dann kannst du das über die zielwertsuche machen. das findest du unter "extras-zielwertsuche". funktioniert so: du gibst eine zelle an, die den zielwert enthält, gibst die zelle an, die wirklich geändert werden soll (hier wird iteriert) und diejenige zelle, in der die formel steht, und die sich eben dadurch ändert, daß die "änder-dich-zelle" variiert wird.

probiers einfach mal.

gruß, axel
Anzeige
AW: was ist zielwertsuche, AW
01.10.2003 12:43:55
heinz
sehr interessant - danke
...gerne. (OT)
01.10.2003 20:54:31
axel.meyer
AW: Zielwertsuche mit VBA
30.09.2003 23:53:00
axel.meyer
hi walter,

trage das nachfolgende makro in das modul der tabelle ein, in der die ZW-suche laufen soll und passe die zellen nach deinen wünschen an. daß die zeile mit der zielwertsuche doppelt vorkommt ist absicht, da es nichts schadet, sie aber zT nicht anläuft, wenn sie nur einfach drin steht.

gruß, axel
ps:
nur falls du es noch nciht wissen solltest: das modul deiner tabelle findest du so:
Alt + F11 drücken, jetzt bist du in der entwicklungsumgebung, wo man makro-codes schreiben kann. hier müßte links oben ein kleines explorer-fenster sein (wenn nicht: Strg + r). hier sind unter VBA-Projekt->Mickeysoft Excel Objekte->Tabelle... auch irgendwo deine tabelle dabei. doppelklick hierauf, rechts erscheint ein großes weißes fenster, hier kannst du den unten stehenden code mit copy-past eintragen.


Private Sub worksheet_change(ByVal target As Excel.Range)
'zelle wg der automatisch gestartet wird
If target.Address = "$L$2" Then
'zielwertsuche
Range("L6").GoalSeek Goal:=Range("L2").Value, ChangingCell:=Range("M2")
Range("L6").GoalSeek Goal:=Range("L2").Value, ChangingCell:=Range("M2")
End If
End Sub

Anzeige
AW: Zielwertsuche mit VBA
01.10.2003 07:08:37
WalterK
Hallo Axel!

Vielen Dank für Deine Mühe, es funktioniert ausgezeichnet. Danke auch für die ausführliche Hilfeanleitung.

Servus, Walter
AW: Zielwertsuche mit VBA
01.10.2003 07:23:05
WalterK
Hallo!

Noch eine Zusatzfrage!
Den Code von Axel habe ich auf die Zeile 12 angepasst und funktioniert auch bestens. Was muss ich tun, damit der Code von Zeile 12 bis Zeile 25 läuft.

Besten Dank nochmals.
Servus, Walter
Anzeige
AW: Zielwertsuche mit VBA
01.10.2003 08:12:27
axel.meyer
morgen walter,

man kann innerhalb der range-anweisung auf diese weise variabel arbeiten:

for i = 12 to 25
Range("L" & i)....
next i

wobei du für den teil "& i)" auch ganze formeln einsetzen kannst, solange das ergebnis eine integer-zahl ist, zB "& (i + 2)*3". auf diese weise kannst du mit einer einzigen schleife "12 to 15" fast immer alles abdecken.

solltest du mal die spalte variieren müssen, kannst du mit dieser syntax arbeiten:

Range(Cells(3,2),Cells(3,2)). das würde Range("B3") entsprechen, hat aber den vorteil, daß beide zahlen durch laufvariablen ersetzbar sind. dabei gilt: "zeile spalte", d.h. die erste zahl entspricht der zeile, die zweite der spalte.

gruß, axel
Anzeige
AW: Zielwertsuche mit VBA
01.10.2003 16:41:26
WalterK
Hallo Axel!

Kann mich leider erst jetzt melden.
Nochmals vielen Dank für die Beantwortung meiner Fragen, versuche jetzt, Deine Infomationen in die Tat umzusetzen.

Servus, Walter
AW: Zielwertsuche mit VBA
01.10.2003 16:41:41
WalterK
Hallo Axel!

Kann mich leider erst jetzt melden.
Nochmals vielen Dank für die Beantwortung meiner Fragen, versuche jetzt, Deine Infomationen in die Tat umzusetzen.

Servus, Walter
Anzeige
Anzeige

Infobox / Tutorial

Zielwertsuche in Excel automatisieren mit VBA


Schritt-für-Schritt-Anleitung

Um die Zielwertsuche in Excel automatisiert mithilfe von VBA zu starten, folge diesen Schritten:

  1. Öffne Excel und drücke Alt + F11, um die VBA-Entwicklungsumgebung zu öffnen.

  2. Finde im Explorer-Fenster auf der linken Seite deine Tabelle unter VBA-Projekt -> Microsoft Excel Objekte.

  3. Doppelklicke auf die entsprechende Tabelle, um ein neues Modul zu öffnen.

  4. Kopiere und füge den folgenden Code in das Modul ein:

    Private Sub worksheet_change(ByVal target As Excel.Range)
    'Zelle, die die Zielwertsuche auslöst
    If target.Address = "$L$2" Then
       'Zielwertsuche
       Range("L6").GoalSeek Goal:=Range("L2").Value, ChangingCell:=Range("M2")
    End If
    End Sub
  5. Passe die Zellen an, die du für deine Zielwertsuche benötigst.

  6. Schließe die Entwickungsumgebung und kehre zur Excel-Oberfläche zurück.

Jetzt wird die Zielwertsuche automatisch gestartet, wenn du einen Wert in Zelle L2 eingibst.


Häufige Fehler und Lösungen

  • Fehler: Die Zielwertsuche startet nicht.

    • Lösung: Überprüfe, ob die Zelle L2 korrekt referenziert ist. Achte darauf, dass das Makro in der richtigen Tabelle gespeichert ist.
  • Fehler: Das Ergebnis wird nicht in der erwarteten Zelle angezeigt.

    • Lösung: Stelle sicher, dass die ChangingCell (in diesem Fall M2) korrekt eingestellt ist.

Alternative Methoden

Wenn du keine VBA-Lösung verwenden möchtest, kannst du die Zielwertsuche auch direkt über die Excel-Oberfläche nutzen:

  1. Markiere die Zelle, die die Formel enthält, die du anpassen möchtest.
  2. Gehe zu Daten -> Zielwertsuche.
  3. Gib den gewünschten Zielwert sowie die Zelle an, die geändert werden soll.
  4. Klicke auf OK, um die Berechnung durchzuführen.

Diese Methode ist hilfreich, wenn du keine Programmierkenntnisse hast.


Praktische Beispiele

Beispiel 1: Du möchtest den Wert in Zelle M2 so anpassen, dass das Ergebnis in L6 den Zielwert von L2 erreicht.

Beispiel 2: Um die Zielwertsuche auch für mehrere Zeilen durchzuführen, kannst du den Code wie folgt erweitern:

For i = 12 To 25
    Range("L" & i).GoalSeek Goal:=Range("L2").Value, ChangingCell:=Range("M" & i)
Next i

Mit dieser Schleife kannst du die Zielwertsuche für mehrere Zeilen gleichzeitig automatisieren.


Tipps für Profis

  • Nutze die Cells-Methode, um flexibel auf unterschiedliche Zeilen und Spalten zuzugreifen:

    Range(Cells(i, 12), Cells(i, 13)).GoalSeek Goal:=Range("L2").Value, ChangingCell:=Cells(i, 13)
  • Vermeide redundante Codezeilen, indem du Schleifen verwendest, um den Code effizienter zu gestalten.

  • Teste deine Makros gründlich, um sicherzustellen, dass sie in allen Szenarien funktionieren.


FAQ: Häufige Fragen

1. Was ist die Zielwertsuche?
Die Zielwertsuche ist eine Funktion in Excel, die es dir ermöglicht, einen Wert in einer Formel zu ermitteln, indem du andere Werte anpasst.

2. Kann ich die Zielwertsuche auch als Formel verwenden?
Ja, die Zielwertsuche kann auch über die Benutzeroberfläche als Funktion genutzt werden, jedoch ist die VBA-Methode oft flexibler und automatisierter.

3. Wie kann ich die Zielwertsuche in mehreren Zellen gleichzeitig durchführen?
Du kannst eine Schleife verwenden, um die Zielwertsuche für mehrere Zellen in einem einzigen Makro durchzuführen.

4. Ist die Zielwertsuche in allen Excel-Versionen verfügbar?
Ja, die Zielwertsuche ist in den meisten modernen Excel-Versionen verfügbar, sowohl in Windows als auch in Mac-Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige