Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Zielwertsuche per Makro

689 views
Skip to first unread message

Thilo Gläser

unread,
Mar 6, 2001, 9:24:07 AM3/6/01
to
Hallo,

ich habe per "Makro aufzeichnen" eine Zielwertsuche mitgeschnitten. Das
Makro läßt sich über "Makro ausführen" in der aufgezeichneten Form ohne
Probleme starten, aber nun möchte ich den Zielwert aus einer Zelle des
gleichen Tabellenblattes auslesen. Das Makro habe ich folgendermaßen
geändert:

Sub zielwert()

Range("B18").GoalSeek Goal:=Range("B20").Value,
ChangingCell:=Range("B8")

End Sub

Das bricht mit Fehlermeldung 1004 ab. Die Hilfe kennt das Thema nicht; kann
mir jemand einen Tip geben, woher der Fehler kommen könnte?

Viele Grüße
Thilo

Hans W. Hofmann

unread,
Mar 6, 2001, 7:45:45 AM3/6/01
to
"Thilo Gläser" <t.gl...@hirtz-sachsen.de> wrote:
>Hallo,
>
>ich habe per "Makro aufzeichnen" eine Zielwertsuche mitgeschnitten. Das
>Makro läßt sich über "Makro ausführen" in der aufgezeichneten Form ohne
>Probleme starten, aber nun möchte ich den Zielwert aus einer Zelle des
>gleichen Tabellenblattes auslesen. Das Makro habe ich folgendermaßen
>geändert:
>
>Sub zielwert()
>
> Range("B18").GoalSeek Goal:=Range("B20").Value,
>ChangingCell:=Range("B8")
>
>End Sub
Deine Programmierung ist OK, wenn Deine Daten es auch sind.


Gruß HW

--
_____________________________________________________________
NewsGroups Suchen, lesen, schreiben mit http://netnews.web.de

Robert Feldmann

unread,
Mar 6, 2001, 3:34:11 PM3/6/01
to
Hallo Thilo,

das klingt als hättest Du die veränderliche Zelle und die Zelle mit
der Formel vertauscht. Dein Format setzt voraus:
das in B18 die Formel steht (z.B. =Summe(B8:B19)
in B20 der gewünschte Wert
und in B8 der zu ändernde Wert.

Alternativ:
Gib den Zellen Namen (Am Einfachsten durch Klick in das Feld über A,
wo sonst der Zellbezug drin steht. Diese Namen kannst Du in der Sub
folgendermaßen anwenden.
Benenne B18 mit Formel
Benenne B20 mit Wert
Benenne B8 mit Anpassen

[Formel].GoalSeek Goal:=[Wert].Value, ChangingCell:=[Anpassen]

Wenn Du die Zellbezüge ändern möchtest, änder sie über "Einfügen ->
Namen festlegen"

Dann brauchts Du nicht immer den VBA Editor aufrufen.

Thilo Gläser schrieb:

--
bis dann,
Robert

Nicht was Du sagst ist entscheidend,
sondern was verstanden wird.


Thilo Gläser

unread,
Mar 7, 2001, 2:49:24 AM3/7/01
to
Hallo Robert,

danke für deine Antwort, aber ...

"Robert Feldmann" <robert....@netcologne.de> schrieb im Newsbeitrag
news:3AA549C3...@netcologne.de...


> Hallo Thilo,
>
> das klingt als hättest Du die veränderliche Zelle und die Zelle mit
> der Formel vertauscht. Dein Format setzt voraus:
> das in B18 die Formel steht (z.B. =Summe(B8:B19)
> in B20 der gewünschte Wert und in B8 der zu ändernde Wert.

... das ist auch so gedacht ...

> Alternativ:
> Gib den Zellen Namen

... habe ich erfolglos versucht. das Problem ist offenbar die Zuweisung

Goal:=Range("B20").Value

In der Aufzeichnung stand dort

Goal:=60

und das funktionierte. Kann es sein, daß ich den Datentyp irgendwie
konvertieren muß? Eigentlich arbeite ich doch so wie's dasteht mit
"Variant"; da müßte sich doch Excel selber helfen, oder? Die Übergabe des
Wertes über eine Variable, die ich unterschiedlich deklariert hatte, läuft
auch nicht.

Viele Grüße
Thilo

Dr. Eckehard Pfeifer

unread,
Mar 7, 2001, 11:55:20 AM3/7/01
to
Hallo, da du nur Range und keinen Verweis auf ein Sheet benutzt, kann es
sein, dass die Zellen nicht aus dem von Dir gewuenschten Blatt genommen
werden, sondern aus dem aktiven. Denn alles andere funktioniert bei mir
problemlos.

--
Mit freundlichen Grüßen
Eckehard Pfeifer

VBA-WorkShops in Dresden, Info unter www.dr-e-pfeifer.de
Ein Blick lohnt sich immer: www.vba-magazin.de

0 new messages