Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
364to368
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
364to368
364to368
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Variable Zielwertsuche mit Makro - nur wie?

Variable Zielwertsuche mit Makro - nur wie?
15.01.2004 21:38:42
Bommel
Hallo erstmal :-)
Ich möchte folgendes machen: Zielwertsuche etwas erweitert
Beim starten des Makros soll der benutzer per eingabebox einen zellbereich (jeweils untereinanderliegende zellen mit zahlen) auswählen in dem verschiedene zielwerte (zahlen)stehen. dann soll die veränderbare zelle sowie die zelle mit der formel ausgewählt werden.
Als ergebnis soll das makro je nach anzahl der verschiedenen zielwerte die jeweiligen ergebnisse für die veränderbare zelle liefern und in einen vorher definierten zellbereich auf dem blatt schreiben. *uff*...
die abfrage der zellbereiche/der zelle habe ich so gemacht:
Dim Neuwert As Object
Set Neuwert = Application.InputBox(prompt:="Zielwerte eingeben:", Type:=8)
Set Neuwert = Application.InputBox(prompt:="Zielwerte eingeben:", Type:=8)
Set Target = Application.InputBox(prompt:="Zielzelle (mit Formel) eingeben:", Type:=8)
Set Aenderbar = Application.InputBox(prompt:="Änderbare Zelle eingeben:", Type:=8)
Set Neuwert2 = Application.InputBox(prompt:="Speicherzelle eingeben:", Type:=8) 'dort sollen die ergebnisse in die zellen geschrieben werden
Set Altwert.Value = Aenderbar.Value '(soll den ursprünglichen wert der zelle speichern um am ende die urprünglichen zahlenwerte wieder herzustellen)
Target.GoalSeek Goal:=Neuwert, ChangingCell:=Aenderbar
alles nur grob hingeschrieben :-)
Meine fragen:
wie kann ich die zellen/zellbereiche der benutzereingaben verwenden?
also wie kann ich aus den variablen die werte in die excel zellen schreiben, die der benutzer in den inputboxen angegeben hat?...habe es nicht hinbekommen, auch mit viel suche :-)
ich bin für jede hílfe dankbar

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable Zielwertsuche mit Makro - nur wie?
15.01.2004 23:35:29
Coach
Hallo Bommel,
bitte poste mal eine Beispieldatei mit genauer Angabe Was -> Wohin und mit Deinem Basis-Algo. Dann baue ich den Rest ein.
Dank und Gruß Coach
AW: Variable Zielwertsuche mit Makro - nur wie?
16.01.2004 10:55:18
Bommel
Hier eine Beispieldatei:
https://www.herber.de/bbs/user/2985.xls
Und hier nochmal eine "Funktionsbeschreibung"

Sub Zielwertsuche()
Dim Neuwert As Object   'Zellbereich in dem die Zielwerte stehen
Dim Neuwert2 As Object  'Zellbereich in den abhängig von den Zielwerten
'die Ergebnisse der veränderbaren Zelle geschrieben werden
Dim Altwert As Object   'Variable, um den Ursprungswert der veränderbaren
'Zelle gespeichert wird
Dim Target As Object    'Die Zelle, in der die Formel der Zielwertsuche steht
Dim Aenderbar As Object 'Die bei der Zielwertsuche veränderbare Zelle
'Der Benutzer wählt mit der Maus die Zellen aus
Set Neuwert = Application.InputBox(prompt:="Zielwerte eingeben:", Type:=8)
Set Target = Application.InputBox(prompt:="Zielzelle Formel eingeben:", Type:=8)
Set Aenderbar = Application.InputBox(prompt:="Änderbare Zelle eingeben:", Type:=8)
'Speichern des Ursprungswertes der veränderbaren Zelle
Set Altwert.Value = Aenderbar.Value
'Hier müssten mit "GoalSeek" in einer Schleife je nach Anzahl der gewünschten Zielwerte
'die Werte der veränderbaren Zelle berechnet werden
Target.GoalSeek Goal:=Neuwert, ChangingCell:=Aenderbar
'Hier wählt der Benutzer aus wo die Ergebnisse gespeichert werden sollen auf dem Blatt
'könnte auch automatisch relative eine Spalte neben den Zielwerten stehen
Set Neuwert2 = Application.InputBox(prompt:="Speicherzellen eingeben:", Type:=8)
'Schreiben der Ergebnisse auf das Tabellenblatt
Set Neuwert2.Value = Aenderbar.Value
'Zurücksetzen der ursprünglichen Daten
Set Aenderbar.Value = Altwert.Value
End Sub

Wie gesagt, die Inputboxen speichern korrekt ein Range-Object(habe mit .Adress mir die Werte angeschaut liefert soetwas: $E$5:$E$10).
Ich weiss einfach nicht wie ich dieses Range-Object verwenden kann, um die Daten, die auf dem Tabellenblatt in diesem Range stehen zu verwenden (also auslesen, auf das Blatt schreiben usw.).

Ich denke wenn mir jemand erklären könnte wie ich von dem Range-Object aus der Inputbox direkten Bezug auf die jeweiligen Werte auf dem Tabellenblatt nehmen kann, wäre mir schon sehr geholfen. Ich habe auch nach längerem Hilfedurchsuchen nichts gefunden.
Vielen vielen Dank!!
Anzeige
AW: Variable Zielwertsuche mit Makro - nur wie?
19.01.2004 09:11:06
Bommel
Vielen Vielen Vielen Dank!!!
Deine Beispiellösung hat nicht nur mein Problem mit der Zielwertsuche gelösst, sondern ich kann anhand deines codes auch neue Elemente von VB erlernen/ableiten.
Du hast mir sehr weitergeholfen und fetten respekt, dass du dir so schnell die arbeit gemacht hast. ich werde es mir vornehmen, anderen auch so schnell zu helfen, damit die "wissens-kette" nicht abreisst :-))
Bommel
AW: Variable Zielwertsuche mit Makro - nur wie?
20.01.2004 10:53:24
Bommel

Sub Goalseekfixed()
Dim Neuwert As Range   'Zellbereich in dem die Zielwerte stehen
Dim Neuwert2 As Range 'Zellbereich in den abhängig von den Zielwerten
'die Ergebnisse der veränderbaren Zelle geschrieben werden
Dim Target As Range    'Die Zelle, in der die Formel der Zielwertsuche steht
Dim Aenderbar As Range 'Die bei der Zielwertsuche veränderbare Zelle
Dim AlterWert As Variant 'Variable, um den Ursprungswert der veränderbaren Zelle gespeichert wird
Dim neu As Range
On Error GoTo Fehler
'Set Target = Application.InputBox(prompt:="Formula:", Type:=8)
Set Target = Range("Formula")
If Target.Count <> 1 Then InfoAbbruch ("You can select a single cell only!")
Set Aenderbar = Range("Changing")
If Aenderbar.Count <> 1 Then InfoAbbruch ("You can select a single cell only!")
'Set Neuwert = Application.InputBox(prompt:="Goals:", Type:=8)
Set Neuwert = Range("Goals")
'Do
'  Set Neuwert2 = Application.InputBox(prompt:="Target Area (must be same Range as Goals Area) :", Type:=8)
'Loop Until (Neuwert2.Rows.Count = Neuwert.Rows.Count) And (Neuwert2.Columns.Count = Neuwert.Columns.Count) 'Then InfoAbbruch ("Der Bereich für die Speicherzellen muß die selbe Form+Größe wie der Bereich mit den Zielwerten haben")
Set Neuwert2 = Range("test")
'Speichern des Ursprungswertes der veränderbaren Zelle
AlterWert = Aenderbar.Value
For Each neu In Neuwert
Target.GoalSeek Goal:=neu.Value, ChangingCell:=Aenderbar
'HIER BRICHT ER IMMER AB
Neuwert2.Cells(neu.Row - Neuwert.Row + 1, neu.Column - Neuwert.Column + 1) = Aenderbar.Value
Next
Aenderbar.Value = AlterWert
Fehler:
'Zurücksetzen der ursprünglichen Daten
End Sub


Sub InfoAbbruch(Info$)
MsgBox Info & " ! Action canceled. please restart "
End
End Sub

Wie oben geschrieben habe ich versucht die Benutzereingabe mit der Maus durch die Verwendung von Namen in der Tabelle zu ersetzen...nur bricht er an einer bestimmten stelle im code immer ab (markiert siehe oben)...
was mache ich nur falsch?
https://www.herber.de/bbs/user/3051.xls
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige