Text

Hallo Peter,

ich bin komplett neu bei w-w-w und durch Stichwortsuche auf Dich gestoßen, hier meine Frage:

Ich habe im Excel (Version 2003) eine Datei eingerichtet zur Erstellung einer Wertpapierwatchlist mit bis zu 50 Werten. Dazu habe ich 50 Web-Abfragen zur Kursaktualisierung importiert, die per Makro aktualisiert werden, hier das Makro auszugsweise (geht so weiter bis zum 50. Wert):

Range(„A101“).Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range(„A201“).Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range(„A301“).Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range(„A401“).Select
Selection.QueryTable.Refresh BackgroundQuery:=False

Um mit dem Makro nur die tatsächlich benötigte Anzahl von Werten zu erfassen, habe ich in einem gesonderten Arbeitsblatt den Textinhalt für das Makro klartextlich vorbereitet (je mehr mit einem Wertpapier belegte Felder exisitieren, desto mehr Abfragen veranlasst das Makro, also A301, A401, A501 usw.) und suche nun nach einer Möglichkeit, diesen Text automatisch (also z.B. per weiteres Makro) in das bestehende Makro einzufügen.

Kurz zusammengefasst: wie kann ich den Inhalt eines Makros mittels eines anderen Makros verändern?

Danke vorab, Gruß Lolek

hallo Lolek,
also den ersten teil habe ich gar nicht verstanden, sry.
Makro ändert makro-sollte gehen, ich bezweifle aber das das nötig ist. Wie gesagt aus dem oberen teil vermute ich, das Du eigentlich nur mit veränderlichen variablen arbeiten müsstest…

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Peter,
eine Info vorweg: ich hab’ meine Makros mangels VBA-Kenntnisse bisher immer nur mittels Excel-Recorder zum Laufen gebracht, was beim VBA-Profi evtl. für große Erheiterung sorgt.
Hier nochmal die Aufgabenstellung, es geht um die Einrichtung eines Tools, mit dem ein Musterdepot von bis zu 50 Wertpapieren eingegeben und durch Auslösen eines Makros laufend aktualisiert werden kann. Dazu habe ich mehrere Arbeitsblätter eingerichtet:
Im 1. Blatt (ich nenn’s mal Frontend) können pro Zeile die einzelnen Titel und die gewünschte Stückzahl eingegeben werden (da mehrere Kollegen Zugriff haben, wird jedes Musterdepot später unter eigenem Namen abgespeichert, so dass die ursprüngliche Vorlage jungfräulich bleibt).
Im 2. Blatt hinterlege ich 50 Webabfragen, in denen die Kurse der gewünschten Aktien etc. erfragt werden (im konreten Fall über Comdirect). Durch Verknüpfung auf Blatt 1 bekomme ich so den aktuellen Kurs und den Gesamtwert pro Gattung.
Im 3. Blatt hab’ ich mittels „wenn-dann“-Funktionen den genauen Text für das Makro, das die Abfragen auslösen soll, hinterlegt. Beispiel: wenn Zeile 8=leer (weil das Musterdepot nur 7 Werte enthält), dann soll das Makro nur die Web-Abfragen 1 (im Feld A1), 2 (im Feld A101), 3 (im Feld A201) bis 7 (im Feld A601) aktualisieren (jede Webabfrage nimmt in Spalte A genau 100 Zeilen in Anspruch). Der Makrotext heisst also hier konkret:

Sub Kursaktualisierung()

’ Kursaktualisierung Makro
’ Makro am 31.07.2009 von Lolek aufgezeichnet


Sheets(„Kursverlinkung Comdirect“).Select
Range(„A1“).Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range(„A101“).Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range(„A201“).Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range(„A301“).Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range(„A401“).Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range(„A501“).Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range(„A601“).Select
Selection.QueryTable.Refresh BackgroundQuery:=False
End Sub

Da bei der Eingabe des nächsten Musterdepots dann vielleicht nur 5 oder gleich 34 Einzelwerte enthalten sein können, muss dafür auch die Anzahl der Webabfragen variierbar sein. Den jeweils benötigten Text liefert wie gesagt das 3. Arbeitsblatt und was ich brauche, ist ein weiteres Makro, das mir den fertigen Text in das bestehende Makro einsetzt.

Als VBA-Experte haust du Dich jetzt wohl weg vor Lachen, weils ganz leicht programmiert werden kann, aber ich bin nunmal nur ein kleiner Excelianer und da sucht man halt solche Umwege.

P.S.: ich kann dir die Datei natürlich auch schicken, aber sag’ bitte deutlich, wo Deine Hilfsbereitschaft endet.

Gruß Lolek

hallo Lolek,

das mit der Datei schicken machts natürlich einfacher:

[email protected]

Schau ich mir mal in einer Mittagspause an, klingt aber nicht schwer.

Gruß
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]