Vollständige Version anzeigen : MG-Orderbuch 2.0
MG-Orderbuch ist eine Depot- und Orderverwaltung für MSExcel. Der besondere Schwerpunkt liegt auf der Verwaltung historischer Transaktionsdaten, z.B. zum Erstellen der Steuererklärung oder zum Auswerten der Gesamtperformance. Depotverwaltungen im Internet bieten zwar eine Reihe von Vorteilen, i.d.R. aber keine Historie über Transaktionen. An dieser Stelle setzt MG-Orderbuch an. Sie können Ihr aktuelles Depot verwalten, Kurse über das Internet aktualisieren und gleichzeitig werden alle Transaktionen im Orderbuch mitgeführt. Auf diese Weise haben Sie jederzeit einen Überblick über die Papiere in Ihrem Depot sowie deren aktuellen Wert und über alle historischen Transaktionen. Statistische Auswertungen können - zum Teil über benutzerdefinierte Zeiträume - jederzeit eingesehen werden. Zudem hat MG-Orderbuch den Vorteil, dass Sie Ihre vertraulichen Daten bei sich auf dem PC haben und nicht von der Weiterexistenz irgendwelcher Websites abhängig sind.
hier downloadenn download (http://www.gyllensvaerd.de/mgorderbuch/index.html)
Off-Topic...ich verschieb es mal ins BörsenKnowHow....
Keyser Sozé
18.10.2005, 21:33
UP :o
Tolles Excel-Tool!!! Schöne Funktionen & leicht zu bedienen!
Sehr empfehlenswert! :tup:
Website (http://www.gyllensvaerd.de/mgorderbuch/index.html) und einige Screenshots (http://www.gyllensvaerd.de/mgorderbuch/mgorderbuch3.html)
Download aktuelle Version (2.2) (http://www.besuchercounter.de/counter/dlcount.php?id=malte71&url=mgorderbuch/mgorderbuch21.zip)
Sehr schönes Tool. Habs gleich ma getestet :tup:
pa$taman
19.10.2005, 11:42
Sehr interessant, werde es auch probieren. Vieleicht kann ich endlich meine ganzen Excel-spread-sheets abschaffen...
Ist es leicht zu bedienen? Kann man die Software leicht individuell herrichten?
ready to rock!
pa$taman
Keyser Sozé
19.10.2005, 18:24
Sehr interessant, werde es auch probieren. Vieleicht kann ich endlich meine ganzen Excel-spread-sheets abschaffen...
Ist es leicht zu bedienen? Kann man die Software leicht individuell herrichten?
ready to rock!
pa$taman
(...) leicht zu bedienen! (...)
Dabei bleibe ich ;) ! Individuell herrichten? Einigermaßen, wo man eingreifen darf, darf man; wo nicht nicht :D ! Man darf halt nicht einfach an allen möglichen Zahlen rumpfuschen, da das die ganzen Berechnungen in der Statistik verfälschen könnte!
:)
pa$taman
20.10.2005, 10:18
Dabei bleibe ich ;) ! Individuell herrichten? Einigermaßen, wo man eingreifen darf, darf man; wo nicht nicht :D ! Man darf halt nicht einfach an allen möglichen Zahlen rumpfuschen, da das die ganzen Berechnungen in der Statistik verfälschen könnte!
:)
Ok, danke für die Info. Ich werde es dieses Wochenende testen
Keyser Sozé
01.11.2005, 16:47
Hat jemand das Dingens ausprobiert :) ?
Und wenn ja: wisst ihr, wie man die Wertpapiere im "Depot"-Bereich sortieren kann? Von mir aus auch manuell :rolleyes:...
lennon909
30.12.2005, 23:06
Finde die Aufmachung sehr übersichtlich
Kann aber leider die Yahoo Daten nicht in MG Orderbuch importieren. Bräuchte dringend eure Hilfe.
Danke mfg, lennon909
Keyser Sozé
31.12.2005, 12:03
Du musst einfach auf "Kaufen" klicken, WKN oder Symbol eingeben, Anzahl etc. festlegen und das ganze dann durch "OK" bestätigen. Du kannst noch etwas weiter rechts im 'Depotbereich' den Börsenplatz festlegen (Xetra, Frankfurt etc.). Durch Klick auf "Internet Update" sollten die aktuellen Kurse abgerufen werden. Makros müssen aktiviert sein, eine Internetverbindung sollte am besten auch bestehen.... ;)
lennon909
31.12.2005, 14:14
danke für deine antwort, ich glaub, dass es jetzt funktioniert
Franzmann
31.12.2005, 16:03
ja, endlich habe ich ein vernünftiges Pragramm gefunden. Sehr schön.
Anfängerin1
05.07.2006, 13:06
ja, endlich habe ich ein vernünftiges Pragramm gefunden. Sehr schön.
Link ist leider nicht mehr aktiv:behh:
Sehr geehrter Nutzer/ Interessent,
leider ist es mir aus zeitlichen Gründen nicht mehr möglich MG-Orderbuch weiterzuentwickeln oder zu supporten. Ich bedaure dies sehr, kann es jedoch nicht ändern.
Sie können das Tool weiterhin hier (http://www.gyllensvaerd.de/html/mgorderbuch21.zip) herunterladen. http://www.gyllensvaerd.de/html/mgorderbuch.html
hallo,
ich bin schon seit langen auf der Suche nach einem "Depotverwalter" Program.
habe auch das MG-Orderbuch, aber leider geht das Internet Update nicht bei mir
Fehler: # 1004 wurde von Exel ausgelöhst.
.... konnte nicht geöffnet werden. Der Internetserver oder Proxy konnte nicht gefunden werden.
da ich mich nicht so gut mit dem Internet auskenne, habe ich keine Ahnung was ich machen soll.
Oder gibt ein besseres Program (Freeware)
würde mich über Eure Hilfe freuen.
A.Greenspan i.R
16.11.2006, 19:47
hallo,
ich bin schon seit langen auf der Suche nach einem "Depotverwalter" Program.
habe auch das MG-Orderbuch, aber leider geht das Internet Update nicht bei mir
Fehler: # 1004 wurde von Exel ausgelöhst.
.... konnte nicht geöffnet werden. Der Internetserver oder Proxy konnte nicht gefunden werden.
da ich mich nicht so gut mit dem Internet auskenne, habe ich keine Ahnung was ich machen soll.
Oder gibt ein besseres Program (Freeware)
würde mich über Eure Hilfe freuen.
du musst die makros aktivieren ;)
Beim Öffnen aktiviere ich die Makros.
aber dann beim klicken auf "Internet Update" kommt die Fehler Meldung.
Kann es vieleicht an dem Pfand liegen, das der nicht mehr aktuelle ist ??
A.Greenspan i.R
17.11.2006, 07:18
schon komisch :confused:
ich habe folgende Version 2.2.0 01.07.2005
und alles läuft :)
vielleicht solltest es noch mal frisch entpacken von der zip datei aus.
ich habe auch die 2.2 aus dem Netz geladen,
ich gebe den Kaufauftrag komplett ein und im rechten Feld die Börse. (Xetra / Frankfurt).
dann gehe ich auf Internet Update und es kommt die Fehlermeldung.
die Fehlermeldung habe ich schon mal beschieben.
was heisst den in diesem Zusammenhang: "Internetserver oder Proxy konnte nicht gefunden werden" ???
und wenn wo kann mir die Datei denn nochmal runterladen.
würde mich über Antworten echt freuen ;-)
A.Greenspan i.R
17.11.2006, 17:07
ich kenne den fehler nicht.
habe auch keinen ahnung wie er die uploads durchführt. vielleicht ist auch nur eine formel falsch.
hier ein link für dich http://www.soft-ware.net/office/finanzen/boerse/p03804.asp?PHPSESSID=3a9d844b2b7e764758bc2a14cccdb 5b2
Danke A.Greenspan,
ich habe die Datei von deinem link runtergeladen, aber der Fehler kommt immer noch,
es muss an meinem Einstellungen am PC bzw. Internet liegen, anders kann ich mir das nicht erklären.
A.Greenspan i.R
18.11.2006, 19:34
Danke A.Greenspan,
ich habe die Datei von deinem link runtergeladen, aber der Fehler kommt immer noch,
es muss an meinem Einstellungen am PC bzw. Internet liegen, anders kann ich mir das nicht erklären.
dann kann ich dir nicht weiter helfen :(
Das MG-Orderbuch hat mir in Sachen Depotverwaltung bisher gut besten gefallen. Besonders auch die Möglichkeit, weitere Tabellen und Funktionen einzufügen.
Gibt es vielelicht noch etwas ähnliches, das noch gepflegt wird oder vielleicht besser ist?
A.Greenspan i.R
14.04.2007, 10:14
Das MG-Orderbuch hat mir in Sachen Depotverwaltung bisher gut besten gefallen. Besonders auch die Möglichkeit, weitere Tabellen und Funktionen einzufügen.
Gibt es vielelicht noch etwas ähnliches, das noch gepflegt wird oder vielleicht besser ist?
was ist den? geht das update nicht mehr? ;)
Nein, heute gehts nicht. Aber es liegt nicht an der Datei, den
das orginal funkt auch nicht. Und nach deinem Wink zu urteilen,
hast du das selbe Problem oder es steckt mehr dahinter...
A.Greenspan i.R
14.04.2007, 10:41
Yahoo ...
--------------------------------------------------------------------------------
... hat heute plötzlich auf das englische Zahlenformat gewechselt:
http://de.old.finance.yahoo.com/d/qu...1c1ohgv&e=.txt
welches mein deutsches Excel nicht parsen kann ... ich hoffe, das ist nur ein temporäres Problem und kein Feature ... wenn nicht, kennt jemand einen Trick, das deutsche Format bei Yahoo zu erzwingen bzw. Excel das englische Format in Webanfragen schmackhaft zu machen?
liegt an yahoo :mad:
Er meinst bestimmt: Punkt statt Komma?
Die Lösung hab ich hier im Forum gefunden:
Wer dann noch die Punkte automatisch in Komma umwandeln will, fügt folgende Zeilen in das Makro am Ende ein, wobei C7:C100 den Bereich der Schlusskurse in der Excel Tabelle darstellt, ggfls. anpassen:
Range("C7:C100").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
ActiveWindow.SmallScroll Down:=12
A.Greenspan i.R
14.04.2007, 11:12
wenn es bei dir klappt kannst mir dann die lösung zeigen. ich habe nämlich von der ganzen sache keine ahnung und hoffe das yahoo es wieder herstellt wiezuvor.
Bisher nicht, sorry.
Habe eher das Gefühl, das die Abfrage ins leere läuft.
Beim öffnen der Links im Browser ist mir aufgefallen,
das diese funktioniert:
http://de.old.finance.yahoo.com/d/quotes.csv?s=DCX.DE&f=sl1d1t1c1ohgv&e=.csv
Ergebniss:
"DCX.DE",60.80,"4/13/2007","11:35am",-0.47,61.50,61.54,60.26,20606230
MG_Orderbuch fragt aber diese ab:
http://de.finance.yahoo.com/d/quotes.csv?f=sl1t1c1ghpv&e=.csv&s=710000.DE
ERGEBNISS:
"710000.DE",0.00,"7:50pm",N/A,N/A,N/A,N/A,N/A
http://de.finance.yahoo.com/d/quotes.csv?s=710000.DE&f=sl1d1t1c1ohgv&e=.csv
"710000",0.00,"N/A","N/A",N/A,N/A,N/A,N/A,N/A
Ich warte auch auf eine Lösung.
Hab schon einiges probiert aber dann fehlt es am Kennwort um in die Makros einzugreifen.
Wenn jemand was hat , bitte ich das er es hier reinstellt.
Danke
sollen die werte in Excel, Access oder wo geladen (Download) werden?
A.Greenspan i.R
15.04.2007, 22:32
sollen die werte in Excel, Access oder wo geladen (Download) werden?
ist excel
Ich warte auch auf eine Lösung.
Hab schon einiges probiert aber dann fehlt es am Kennwort um in die Makros einzugreifen.
Wenn jemand was hat , bitte ich das er es hier reinstellt.
Danke
das kennwort lautet "aendern".
ist excel
das kennwort lautet "aendern".
Erst mal vielen Dank für die schnelle Hilfe .
Hoffentlich bekomme ich das hin.
Werd mich heute mal dransetzen.
A.Greenspan i.R
17.04.2007, 17:42
gibt es schon was neues von der programmierfront :confused:
Bin auch noch nicht weiter mit dem Proramm.
Yahoo hat wohl in den neuen Geschäftsbedingungen das automatische downloden verboten.
Das kennwort "aendern" bei dem "MG" ist bei mir nicht richtig.
Hänge daran fest, komme nicht weiter!!!!
Probier was neues aus: http://zerus.net/index.php?Home
Sieht fürs erste ganz prima aus.
Aber ich glaube es fehlt die tolle Statistik die das mg hatte.
kennt das schon jemand??
Bin auch noch nicht weiter mit dem Proramm.
Yahoo hat wohl in den neuen Geschäftsbedingungen das automatische downloden verboten.
Das kennwort "aendern" bei dem "MG" ist bei mir nicht richtig.
Hänge daran fest, komme nicht weiter!!!!
Probier was neues aus: http://zerus.net/index.php?Home
Sieht fürs erste ganz prima aus.
Aber ich glaube es fehlt die tolle Statistik die das mg hatte.
kennt das schon jemand??
Funktioniert der Download oder will jemand die Tabelle mit dem Script haben?
A.Greenspan i.R
17.04.2007, 23:52
Funktioniert der Download oder will jemand die Tabelle mit dem Script haben?
ich habe leider keine ahnung was das ist oder für was es ist :think:
ich weiss nur das die von yahoo :doll: sind :D
Hab zwar das Passwort geknackt hiermit
http://www.ive-software.de/excel-passwort-cracker.php3
Bekomme aber mit der im tread angegeben Formel auch keine Kurse.
Wer weiß wie man eine anderen Kurslieferanten
z.B. http://www.finanztreff.de/ftreff/kurse_einzelkurs_detail.htm
richtig einsetzt
( hab schon probiert bekommenur Fehlermeldungen)
Die ich nicht verstehe syntax ....... u.s.w.
Danke im vorraus
Hab zwar das Passwort geknackt hiermit
http://www.ive-software.de/excel-passwort-cracker.php3
Bekomme aber mit der im tread angegeben Formel auch keine Kurse.
Wer weiß wie man eine anderen Kurslieferanten
z.B. http://www.finanztreff.de/ftreff/kurse_einzelkurs_detail.htm
richtig einsetzt
( hab schon probiert bekommenur Fehlermeldungen)
Die ich nicht verstehe syntax ....... u.s.w.
Danke im vorraus
Hier die alten Befehle :
AbfrageName = AktuelleWKN + "." + BoerseKuerzel
'Abfrage = "URL;http://de.finance.yahoo.com/d/quotes.csv?f=sl1t1c1ghpv&e=.csv&s=" + AktuelleWKN + "." + BoerseKuerzel
Abfrage = "URL;http://de.finance.yahoo.com/d/quotes.csv?s=" + AktuelleWKN + ""
Kicktenan
18.04.2007, 07:19
Hallo,
ich will auch beim MG-Orderbuch bleiben, hab aber grad keine Zeit zum Programmieren.
- Will aber meinen Senf dazu hier lassen.
Falls der *.CSV Abruf, Bzw. das Einlesen, nicht mehr geht, könnte vielleicht eine Vorgehensweise mit einer temporären Hilfstabelle funktionieren. Dabei wird eine Seite im Hintergrund geladen und ausgelesen.
Hab das mal bei http://www.boerse-pur.de/ExcelUtilities.htm
gesehen. Es schien mir nur etwas Langsam und die Kursliste konnte bei mir keine Derivate.
Der Entwickler der Tools bietet bei WO seine Hilfe an.
http://www.wallstreet-online.de/dyn/community/thread/1123380-1.html?&search_in=0&search_key=excel&extended=1&timemode=1&search_timerange=-30&page=1
@EMEUV
Dein Abruftool scheint auf die Kürzel von Yahoo als Eingabe angewiesen zu sein, was bei Derivaten schwierig ist. Das MG-Orderbuch kam mit WKN’s zurecht. Es geht letztlich darum, weiterhin die WKN’s aus dem der Spalte im Depot Auszulesen und daraus einen funktionierenden String für den Abruf zu basteln.
A.Greenspan i.R
18.04.2007, 07:53
Hallo,
ich will auch beim MG-Orderbuch bleiben, hab aber grad keine Zeit zum Programmieren.
- Will aber meinen Senf dazu hier lassen.
Falls der *.CSV Abruf, Bzw. das Einlesen, nicht mehr geht, könnte vielleicht eine Vorgehensweise mit einer temporären Hilfstabelle funktionieren. Dabei wird eine Seite im Hintergrund geladen und ausgelesen.
Hab das mal bei http://www.boerse-pur.de/ExcelUtilities.htm
gesehen. Es schien mir nur etwas Langsam und die Kursliste konnte bei mir keine Derivate.
Der Entwickler der Tools bietet bei WO seine Hilfe an.
http://www.wallstreet-online.de/dyn/community/thread/1123380-1.html?&search_in=0&search_key=excel&extended=1&timemode=1&search_timerange=-30&page=1
danke für den tip :tup:
der entwickler hat echt gute programme gemacht.
seine internetseite ist auch sehr gut http://www.boerse-pur.de/index.htm
ich schau mal was er nochso alles gemacht hat. vielleicht steige ich auch um.
mit kopieren und einfügen kann man ja alles rüberziehen :D
Dein Abruftool scheint auf die Kürzel von Yahoo als Eingabe angewiesen zu sein, was bei Derivaten schwierig ist. Das MG-Orderbuch kam mit WKN’s zurecht. Es geht letztlich darum, weiterhin die WKN’s aus dem der Spalte im Depot Auszulesen und daraus einen funktionierenden String für den Abruf zu basteln.
Yahoo scheint ja keine WKN mehr innerhalb der URL zu verarbeiten. Man muss also zwingend das Symbol verwenden. Wenn die restliche Funktionalität von MG Orderbuch auf der Verarbeitung von WKN basiert, wird man also um die Verknüpfung von den WKN mit den bei Yahoo verwendeten Symbolen nicht herumkommen....
Kicktenan
18.04.2007, 19:56
Hab schell was für das ``Punkt zu Komma´´ Problem gebastelt.
Zum Test ein Derivat mit WKN.
http://de.old.finance.yahoo.com/d/quotes.csv?s=DB26B7.SG&f=sl1d1t1c1ohgv&e=.csv
Inhalt:
DB26B7.SG,1.06,"4/18/2007","5:38am",+0.01,1.05,1.06,1.06,2000
Sub Punk_zu_Komma_2()
' Basiscode von: http://support.microsoft.com/kb/510240/de
On Error Resume Next
'Die Variablen "inhalt", "Neu_inhalt", und (als Objekt) "Zelle" werden definiert
Dim inhalt As Variant
Dim Neu_inhalt As Variant
Dim Zelle As Object
'Die "For Each"-Schleife mit der Festlegung des Zellbereiches wird gestartet
For Each Zelle In ActiveWorkbook.ActiveSheet.Range("A1:A1")
'Der Zellinhalt wird ausgelesen
inhalt = Zelle.Value
'Der Zellinhalt wird um den Apostroph ergänzt
Zelle = "'" & inhalt
'Der Punkt wird durch das Komma ersetzt
Zelle.Replace what:=",", replacement:=">"
Zelle.Replace what:=".", replacement:=","
'Der neue Inhalt wird in die Zelle zurückgeschrieben
Neu_inhalt = Zelle.Value
Zelle = Neu_inhalt
Next Zelle
End Sub Ergebnis:
DB26B7,SG>1,06>"4/18/2007">"5:38am">+0,01>1,05>1,06>1,06>2000
Sub TEXTinSpalten()
'
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=">", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1)), TrailingMinusNumbers:=True
End SubErgebnis:
DB26B7,SG 1,06 4/18/2007 5:38am 0,01 1,05 1,06 1,06 2000
Leider ist es mir auf die schnelle nicht gelungen alles in ein Makro zu packen, sollte aber funktionieren!
A.Greenspan i.R
18.04.2007, 20:11
Hab schell was für das ``Punkt zu Komma´´ Problem gebastelt.
Leider ist es mir auf die schnelle nicht gelungen alles in ein Makro zu packen, sollte aber funktionieren!
:tup:
lass dir zeit. ich kann mit den formel nichts anfangen :bang:
vielleicht kannst wenn du zeit hast das marko machen.
wäre echt super :tup:
Hallo!
Ich weiß nicht, ob das hilft: Wenn ich über die Adresse
http://de.old.finance.yahoo.com/d/quotes.csv?s=^GDAXI&f=sl1d1t1c1ohgv&e=.csv (http://de.old.finance.yahoo.com/d/quotes.csv?s=%5EGDAXI&f=sl1d1t1c1ohgv&e=.csv)
Kurse abrufe, dann bekomme ich als Antwort, dass das Dokument verschoben wurde. Die neue Adresse ist
http://finance.yahoo.com/d/quotes.csv?s=^GDAXI&f=sl1d1t1c1ohgv&e=.csv (http://finance.yahoo.com/d/quotes.csv?s=%5EGDAXI&f=sl1d1t1c1ohgv&e=.csv).
Wenn mann das über den Browser versucht, dann sieht man das nicht, da dieser die Weiterleitung automatisch ausführt und die Daten von der neuen Adresse runter lädt (man könnte denken, die alte Adresse geht noch).
Hallo MG Orderbuch Nutzer,
bin das 1.mal hier weil ich mir Hilfe erhoffe.
Wie kann ich in meinem Orderbuch das Makro mit dem Yahoo aufruf ändern, damit es wieder ans laufen komt?
Danke im voraus
OK. Soweit komme ich der Sache näher.
Die Adresse muss folgendermaßen geändert werden. Und wie schon erwähnt sind WKN nicht mehr möglich. Börsenkürzel ist notwendig.
Sheet(1) Depot
'Abfrage = "URL;http://de.old.finance.yahoo.com/d/quotes.csv?f=sl1t1c1ghpv&e=.csv&s=" + AktuelleWKN + "." + BoerseKuerzel
Abfrage = "URL;http://de.old.finance.yahoo.com/d/quotes.csv?s=" + AktuelleWKN + "." + BoerseKuerzel + "&f=sl1d1t1c1ohgv&e=.csv"
Ferner in dieser Zeile: Comma auf True
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).TextToColumns Destination:=ActiveSheet.Cells(AktuelleZeile, InternetAbfrageErgebnisDepot), DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2))
Leider momme ich mit Kicktenan's Komma Lösung nicht zurecht. Unter Kurs steht leider noch die 100 fache Menge. Wie also den unten genannten code einsetzen?
Gruß
Hab schell was für das ``Punkt zu Komma´´ Problem gebastelt.
Zum Test ein Derivat mit WKN.
http://de.old.finance.yahoo.com/d/quotes.csv?s=DB26B7.SG&f=sl1d1t1c1ohgv&e=.csv
Inhalt:
DB26B7.SG,1.06,"4/18/2007","5:38am",+0.01,1.05,1.06,1.06,2000
Sub Punk_zu_Komma_2()
' Basiscode von: http://support.microsoft.com/kb/510240/de
On Error Resume Next
'Die Variablen "inhalt", "Neu_inhalt", und (als Objekt) "Zelle" werden definiert
Dim inhalt As Variant
Dim Neu_inhalt As Variant
Dim Zelle As Object
'Die "For Each"-Schleife mit der Festlegung des Zellbereiches wird gestartet
For Each Zelle In ActiveWorkbook.ActiveSheet.Range("A1:A1")
'Der Zellinhalt wird ausgelesen
inhalt = Zelle.Value
'Der Zellinhalt wird um den Apostroph ergänzt
Zelle = "'" & inhalt
'Der Punkt wird durch das Komma ersetzt
Zelle.Replace what:=",", replacement:=">"
Zelle.Replace what:=".", replacement:=","
'Der neue Inhalt wird in die Zelle zurückgeschrieben
Neu_inhalt = Zelle.Value
Zelle = Neu_inhalt
Next Zelle
End Sub Ergebnis:
DB26B7,SG>1,06>"4/18/2007">"5:38am">+0,01>1,05>1,06>1,06>2000
Sub TEXTinSpalten()
'
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=">", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1)), TrailingMinusNumbers:=True
End SubErgebnis:
DB26B7,SG 1,06 4/18/2007 5:38am 0,01 1,05 1,06 1,06 2000
Leider ist es mir auf die schnelle nicht gelungen alles in ein Makro zu packen, sollte aber funktionieren!
Kicktenan
19.04.2007, 22:30
@A.Greenspan i.R
So gut kann ich auch noch nicht programmieren, dass ich es mir ganz alleine zutraue!
Ich stelle hier auch nur meine unfertigen Versuche rein, damit nicht einer alles alleine machen muss. Ich denke, das MG-Orderbuch hat es verdient weiter zu leben, da mir die Kostenpflichtigen Demos in dem Bereich nicht annähernd so gut gefallen haben.
Vielleicht reicht es ja die Zeile ``Abfrage =´´ zu ändern, Aktien künftig per Kürzel zu erfassen und unter der Abfrage meinen Code zum umwandeln im Beispiel unter ``''''''''''''''''''''''' ´´ teilweise einzufügen.
Wie sah die CSV früher aus? Theoretisch könnte man den String gleich nach dem Abruf in dieses alte, vom Orderbuch lesbare Format umwandeln und den Teil mit Text in Spalten weglassen.
@tatanka
Danke für den Tipp, bei mir funktionierten grade beide Links in Excel, leider bekomme ich beim Abrufen der Links per String von finance.yahoo.com/d/quotes.csv?s, unerklärliche Fehler (Missing Format Variable,). Der Link de.old.finance.yahoo.com/d/quotes.csv funktioniert mit Strings, aber man scheint für Aktien künftig die Kürzel zu brauchen und bei Derivaten weiterhin die WKN’s.
@Ranya
Hab gerade noch daran gearbeitet, mittlerweile ist es mir gelungen alles in ein Makro zu packen. Vielleicht löst es die 100*Probleme bereits, die Kurse Stimmen bei mir.
+-----+-----+----------+------+-----+--+-----+-----+-----+
|BAS,F|89,34|19.04.2007|1:40pm|-0,05|88|89,36|87,59|66402|
+-----+-----+----------+------+-----+--+-----+-----+-----+ -------------
Mit dem Makro unten kann jeder mit einer neuen Arbeitsmappe, oder Tabelle selbst experimentieren. Es ist so eingestellt, dass BASF.F per String abgerufen wird.
Das Makro ruft eine CSV von Yahoo ab und wandelt sie gleich so um, dass die Werte mit Komma in einzelnen Zellen stehen.
Das ganze muss in ein Modul im VBA-Editor eingefügt werden (Rechtsklick auf den Namen der Arbeitsmappe im VBA-Editor > Einfügen > Modul ). Das Startfenster für das Makro kann mit ``ALT + F8´´ aufgerufen werden.
Sub Abruf_MGO2()
Dim Abfrage As String
Dim AktuelleWKN As String
Dim AbfrageName As String
Dim BoerseKuerzel As String
Dim Mldg
'AktuelleWKN = "DB26B7" ' Test Derivat
'BoerseKuerzel = "SG"
'AktuelleWKN = "^GDAXI " ' Test Index
'BoerseKuerzel = "F"
AktuelleWKN = "BASF" ' "515100" '=BASF 'Test Aktie
BoerseKuerzel = "F"
'Internet Abfrage aufbauen und durchfuehren
'AbfrageName = AktuelleWKN + "." + BoerseKuerzel
AbfrageName = AktuelleWKN + "." + BoerseKuerzel
'Abfrage = "URL;http://de.old.finance.yahoo.com/d/quotes.csv?s=DB26B7.SG&f=sl1d1t1c1ohgv&e=.csv"
Abfrage = "URL;http://de.old.finance.yahoo.com/d/quotes.csv?s=" + AktuelleWKN + "." + BoerseKuerzel + "&f=sl1d1t1c1ohgv&e=.csv"
'Abfrage = "URL;http://finance.yahoo.com/d/quotes.csv?s=^GDAXI&f=sl1d1t1c1ohgv&e=.csv."
'Abfrage = "URL;http://finance.yahoo.com/d/quotes.csv?s=" + AktuelleWKN + "." + BoerseKuerzel + "=sl1d1t1c1ohgv&e=.csv."
With ActiveSheet.QueryTables.Add(Connection:=Abfrage, Destination:=ActiveSheet.Cells(1, 1))
.Name = AbfrageName
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = False
.AdjustColumnWidth = False
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.Refresh BackgroundQuery:=False
End With
'''''''''''''''''''''''
On Error Resume Next
'Die Variablen "inhalt", "Neu_inhalt", und (als Objekt) "Zelle" werden definiert
Dim inhalt As Variant
Dim Neu_inhalt As Variant
Dim Zelle As Object
'Die "For Each"-Schleife mit der Festlegung des Zellbereiches wird gestartet
For Each Zelle In ActiveWorkbook.ActiveSheet.Range("A1:A1")
'Der Zellinhalt wird ausgelesen
inhalt = Zelle.Value
'Der Zellinhalt wird um den Apostroph ergänzt
Zelle = "'" & inhalt
'Kommas werden durch '>' ersetzt
Zelle.Replace what:=",", replacement:=">"
'Punkte werden durch Kommas ersetzt
Zelle.Replace what:=".", replacement:=","
'Der neue Inhalt wird in die Zelle zurückgeschrieben
Neu_inhalt = Zelle.Value
Zelle = Neu_inhalt
Next Zelle
With Cells(1, 1).Select
' '>' wird als Trennzeichen für Text ín Spalten genutzt
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=">", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1)), TrailingMinusNumbers:=True
' nun stehen die Daten mir Komma in einzenen Spalten der Zeile 1 nebeneinander und können ausgelesen werden.
End With
End Sub
A.Greenspan i.R
19.04.2007, 22:54
habe das gerade in einem andern forum gefunden:
Meine Lösung ...
--------------------------------------------------------------------------------
... sieht dann doch recht einfach aus.
Ich habe alle Yahoo-Webanfragen an eine andere Stelle im Blatt kopiert und das Format "Text" für die Ergebnisse eingestellt. Dadurch versaut Excel nicht mehr die Daten durch seine "Intelligenz" beim Laden.
An die alten Positionen tritt mit dem ursprünglichen Format eine Formel der Art =WERT(WECHSELN(D48;".";",")), wobei D48 auf das Feld der Webanfrage zeigt.
da mir die Kostenpflichtigen Demos in dem Bereich nicht annähernd so gut gefallen haben.
Schon mal "Depotverwaltung deluxe" (http://www.nice-bytes.de) probiert? Bin sehr zufrieden damit, obwohl aus den hier beschriebenen Gründen die Abfrage über Yahoo auch nicht mehr geht. Man hat aber Alternativen....
@tatanka
Danke für den Tipp, bei mir funktionierten grade beide Links in Excel, leider bekomme ich beim Abrufen der Links per String von finance.yahoo.com/d/quotes.csv?s (http://finance.yahoo.com/d/quotes.csv?s), unerklärliche Fehler (Missing Format Variable,). Der Link de.old.finance.yahoo.com/d/quotes.csv (http://de.old.finance.yahoo.com/d/quotes.csv) funktioniert mit Strings, aber man scheint für Aktien künftig die Kürzel zu brauchen und bei Derivaten weiterhin die WKN’s.
Sorry - mein Fehler. Ich habe den Link oben korrigiert. Sollte jetzt gehen.
@Kicktenan
Dein Macro funktioniert einwandfrei. Nu ich krieg das einfach nicht integriert. Echt leidig, wenn man sich noch nie mit VB auseinander gesetzt hat. *g Das muss ich ganz, ganz dringend nachholen. :hmpf:
PS: Aha, aha.
Da habe ich es ja doch hinbekommen. Das hätte ich ja jetzt nicht gedacht.
Vielen Dank für den Gedankenanstoß, Kicktenan.
.Replace what:=",", replacement:=";"
.Replace what:=".", replacement:=","
Hallo zusammen,
vielleicht könnt Ihr mir helfen?! Ich benutze das MGOrderbuch zur Aktienkursabfrage, doch seit einigen Tagen können keine Kurse mehr geladen werden. Der Autor supported sein Excel-Tool leider nicht mehr. Was kann ich tun? Habt Ihr eine Lösung und evtl. eine Anleitung wie man das MGOrderbuch wieder zum Laufen bekommt?
Gruß, Felix
@Kicktenan
Dein Macro funktioniert einwandfrei. Nu ich krieg das einfach nicht integriert. Echt leidig, wenn man sich noch nie mit VB auseinander gesetzt hat. *g Das muss ich ganz, ganz dringend nachholen. :hmpf:
PS: Aha, aha.
Da habe ich es ja doch hinbekommen. Das hätte ich ja jetzt nicht gedacht.
Vielen Dank für den Gedankenanstoß, Kicktenan.
.Replace what:=",", replacement:=";"
.Replace what:=".", replacement:=","
Hallo bin mit meinen Versuchen am Ende.
Kannst du vieleicht mal den kompletten weg reinstellen.
Ich glaub es würde vielen weiterhelfen.
Danke für die Mühe
Ja, kann ich gerne machen.
Es ist fortan nicht mehr die WKN zu nennen, sondern das Börsenkürzel von Yahoo. Die nachfolgend genannten Zeilen sind zu ersetzen/reparieren. Viel Erfolg.
replace in Sheet1 (Depot):
'Abfrage = "URL;http://de.old.finance.yahoo.com/d/quotes.csv?f=sl1t1c1ghpv&e=.csv&s=" + AktuelleWKN + "." + BoerseKuerzel
Abfrage = "URL;http://de.old.finance.yahoo.com/d/quotes.csv?s=" + AktuelleWKN + "." + BoerseKuerzel + "&f=sl1d1t1c1ohgv&e=.csv"
replace in Sheet1 (Depot):
AktuelleZeile = ErsteZeileDepot
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
While AktuelleWKN <> ""
For i = 1 To 9
ActiveSheet.Cells(AktuelleZeile, BoerseDepot + i).ClearContents
Next i
AbfrageErgebnis = CStr(ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Value)
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Replace what:=",", replacement:=";"
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Replace what:=".", replacement:=","
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).TextToColumns Destination:=ActiveSheet.Cells(AktuelleZeile, InternetAbfrageErgebnisDepot), DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2))
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).ClearContents
ActiveSheet.Cells(AktuelleZeile, KursAktuellDepot) = Round(CDbl(ActiveSheet.Cells(AktuelleZeile, InternetAbfrageKursDepot)), 3)
AktuelleZeile = AktuelleZeile + 1
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
Wend
ActiveSheet.Cells(60, 25).Value = Date
ActiveSheet.Cells(61, 25).Value = Time
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
A.Greenspan i.R
26.04.2007, 12:36
Ja, kann ich gerne machen.
Es ist fortan nicht mehr die WKN zu nennen, sondern das Börsenkürzel von Yahoo. Die nachfolgend genannten Zeilen sind zu ersetzen/reparieren. Viel Erfolg.
danke schon mal von mir :tup:
aber wo genau muss man die zeilen ändern, ich komme da einfach nicht weiter:bang:
vielleicht kannst du die reihenfolge per screenshot zeigen. :tup:
Erst mal Dank
Ich hab folgendes jetzt im sheet 1 depot stehen
Private Sub CommandButton4_Click()
Dim Abfrage As String
Dim AbfrageName As String
Dim BoerseKuerzel As String
Dim Mldg
On Error GoTo ErrorHandler
AktuelleZeile = ErsteZeileDepot
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
SheetFreigeben
'Internet Abfrage aufbauen und durchfuehren
While AktuelleWKN <> ""
AktuelleBoerse = CStr(ActiveSheet.Cells(AktuelleZeile, BoerseDepot).Value)
BoerseKuerzel = "F"
If AktuelleBoerse = "DE - Xetra" Then BoerseKuerzel = "DE"
If AktuelleBoerse = "DE - Frankfurt" Then BoerseKuerzel = "F"
'If AktuelleBoerse = "DE - Berlin" Then BoerseKuerzel = "BE"
If AktuelleBoerse = "DE - Berlin/ Bremen" Then BoerseKuerzel = "BE"
If AktuelleBoerse = "DE - Düsseldorf" Then BoerseKuerzel = "DU"
If AktuelleBoerse = "DE - Hamburg" Then BoerseKuerzel = "HM"
If AktuelleBoerse = "DE - Hannover" Then BoerseKuerzel = "HA"
If AktuelleBoerse = "DE - München" Then BoerseKuerzel = "MU"
If AktuelleBoerse = "DE - Stuttgart" Then BoerseKuerzel = "SG"
'If AktuelleBoerse = "GB - London" Then BoerseKuerzel = "L"
If AktuelleBoerse = "F - Paris" Then BoerseKuerzel = "PA"
If AktuelleBoerse = "NL - Amsterdam" Then BoerseKuerzel = "AS"
If AktuelleBoerse = "B - Brüssel" Then BoerseKuerzel = "BR"
If AktuelleBoerse = "IRL - Dublin" Then BoerseKuerzel = "I"
'If AktuelleBoerse = "DK - Kopenhagen" Then BoerseKuerzel = "CO"
If AktuelleBoerse = "P - Lissabon" Then BoerseKuerzel = "LS"
If AktuelleBoerse = "I - Mailand" Then BoerseKuerzel = "MI"
If AktuelleBoerse = "E - Madrid" Then BoerseKuerzel = "MC"
'If AktuelleBoerse = "S - Stockholm" Then BoerseKuerzel = "ST"
If AktuelleBoerse = "A - Wien" Then BoerseKuerzel = "VI"
'If AktuelleBoerse = "CH - Zürich" Then BoerseKuerzel = "S"
AbfrageName = AktuelleWKN + "." + BoerseKuerzel
'Abfrage = "URL;http://de.old.finance.yahoo.com/d/quotes.csv?f=sl1t1c1ghpv&e=.csv&s=" + AktuelleWKN + "." + BoerseKuerzel
Abfrage = "URL;http://de.old.finance.yahoo.com/d/quotes.csv?s=" + AktuelleWKN + "." + BoerseKuerzel + "&f=sl1d1t1c1ohgv&e=.csv"
With ActiveSheet.QueryTables.Add(Connection:=Abfrage, Destination:=ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot))
.Name = AbfrageName
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = False
.AdjustColumnWidth = False
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.Refresh BackgroundQuery:=False
End With
'Abfrageergebnis parsen und eintragen
AktuelleZeile = ErsteZeileDepot
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
While AktuelleWKN <> ""
For i = 1 To 9
ActiveSheet.Cells(AktuelleZeile, BoerseDepot + i).ClearContents
Next i
AbfrageErgebnis = CStr(ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Value)
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).TextToColumns Destination:=ActiveSheet.Cells(AktuelleZeile, InternetAbfrageErgebnisDepot), DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2))
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).ClearContents
ActiveSheet.Cells(AktuelleZeile, KursAktuellDepot) = Round(CDbl(ActiveSheet.Cells(AktuelleZeile, InternetAbfrageKursDepot)), 3)
AktuelleZeile = AktuelleZeile + 1
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
Wend
ActiveSheet.Cells(60, 25).Value = Date
ActiveSheet.Cells(61, 25).Value = Time
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
SheetSchuetzen
Exit Sub
Es klappt nicht ,ich seh den Fehler nicht.
Er wählt sich nicht mal mehr ein.
Anstatt isin oder wkn, Symbol eingetragen (z.B.FXXN ) oder auch so (FXXN.F) für Frankfurt
Was mache ich falsch ??????????????????
Kicktenan
26.04.2007, 22:15
@Ranya
Danke für deine Hilfe, super Leistung!
@All
Hab mein Orderbuch aus Zeitgründen erst jetzt nach Ranya’s Anleitung repariert und dazu gleich vorher – nachher- Screenshoots angefertigt. Damit sollte es sich selbst erklären. Es funktioniert in wenigen Minuten, wenn ihr den Code an die richtige Stelle platziert!
A.Greenspan i.R
27.04.2007, 13:04
@Ranya
Danke für deine Hilfe, super Leistung!
@All
Hab mein Orderbuch aus Zeitgründen erst jetzt nach Ranya’s Anleitung repariert und dazu gleich vorher – nachher- Screenshoots angefertigt. Damit sollte es sich selbst erklären. Es funktioniert in wenigen Minuten, wenn ihr den Code an die richtige Stelle platziert!
und wo muss man das ändern?
vielleicht kannst du ein leeres orderbuch zum runterladen reinstellen:tup:
du musst nur die .XXX ändern.
Hallo Dank an alle Programierer
ich habs geschafft.
So sieht die ganze Seite Sheet 1 Depot bei mir aus
Private Sub CommandButton1_Click()
ZukaufZeile = ActiveCell.Row
If (ZukaufZeile >= 7 And ZukaufZeile <= 56) And ActiveSheet.Cells(ZukaufZeile, StueckDepot).Value > 0 Then
UserForm6.FormularVorbereiten
UserForm6.Show
Else
UserForm1.FormularVorbereiten
UserForm1.Show
End If
End Sub
Private Sub CommandButton2_Click()
VerkaufZeile = ActiveCell.Row
If ActiveSheet.Cells(VerkaufZeile, WKNDepot).Value = "" Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
ElseIf (VerkaufZeile < ErsteZeileDepot) Or (VerkaufZeile > LetzteZeileDepot) Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
Else
UserForm2.FormularVorbereiten
UserForm2.Show
End If
End Sub
Private Sub CommandButton3_Click()
SplitZeile = ActiveCell.Row
If ActiveSheet.Cells(SplitZeile, WKNDepot).Value = "" Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
ElseIf (SplitZeile < ErsteZeileDepot) Or (SplitZeile > LetzteZeileDepot) Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
Else
UserForm3.FormularVorbereiten
UserForm3.Show
End If
End Sub
Private Sub CommandButton4_Click()
Dim Abfrage As String
Dim AbfrageName As String
Dim BoerseKuerzel As String
Dim Mldg
On Error GoTo ErrorHandler
AktuelleZeile = ErsteZeileDepot
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
SheetFreigeben
'Internet Abfrage aufbauen und durchfuehren
While AktuelleWKN <> ""
AktuelleBoerse = CStr(ActiveSheet.Cells(AktuelleZeile, BoerseDepot).Value)
BoerseKuerzel = "F"
If AktuelleBoerse = "DE - Xetra" Then BoerseKuerzel = "DE"
If AktuelleBoerse = "DE - Frankfurt" Then BoerseKuerzel = "F"
'If AktuelleBoerse = "DE - Berlin" Then BoerseKuerzel = "BE"
If AktuelleBoerse = "DE - Berlin/ Bremen" Then BoerseKuerzel = "BE"
If AktuelleBoerse = "DE - Düsseldorf" Then BoerseKuerzel = "DU"
If AktuelleBoerse = "DE - Hamburg" Then BoerseKuerzel = "HM"
If AktuelleBoerse = "DE - Hannover" Then BoerseKuerzel = "HA"
If AktuelleBoerse = "DE - München" Then BoerseKuerzel = "MU"
If AktuelleBoerse = "DE - Stuttgart" Then BoerseKuerzel = "SG"
'If AktuelleBoerse = "GB - London" Then BoerseKuerzel = "L"
If AktuelleBoerse = "F - Paris" Then BoerseKuerzel = "PA"
If AktuelleBoerse = "NL - Amsterdam" Then BoerseKuerzel = "AS"
If AktuelleBoerse = "B - Brüssel" Then BoerseKuerzel = "BR"
If AktuelleBoerse = "IRL - Dublin" Then BoerseKuerzel = "I"
'If AktuelleBoerse = "DK - Kopenhagen" Then BoerseKuerzel = "CO"
If AktuelleBoerse = "P - Lissabon" Then BoerseKuerzel = "LS"
If AktuelleBoerse = "I - Mailand" Then BoerseKuerzel = "MI"
If AktuelleBoerse = "E - Madrid" Then BoerseKuerzel = "MC"
'If AktuelleBoerse = "S - Stockholm" Then BoerseKuerzel = "ST"
If AktuelleBoerse = "A - Wien" Then BoerseKuerzel = "VI"
'If AktuelleBoerse = "CH - Zürich" Then BoerseKuerzel = "S"
AbfrageName = AktuelleWKN + "." + BoerseKuerzel
'Abfrage = "URL;http://de.old.finance.yahoo.com/d/quotes.csv?f=sl1t1c1ghpv&e=.csv&s=" + AktuelleWKN + "." + BoerseKuerzel
Abfrage = "URL;http://de.old.finance.yahoo.com/d/quotes.csv?s=" + AktuelleWKN + "." + BoerseKuerzel + "&f=sl1d1t1c1ohgv&e=.csv"
With ActiveSheet.QueryTables.Add(Connection:=Abfrage, Destination:=ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot))
.Name = AbfrageName
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = False
.AdjustColumnWidth = False
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.Refresh BackgroundQuery:=False
End With
AktuelleZeile = AktuelleZeile + 1
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
Wend
'#
'Abfrageergebnis parsen und eintragen
AktuelleZeile = ErsteZeileDepot
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
While AktuelleWKN <> ""
For i = 1 To 9
ActiveSheet.Cells(AktuelleZeile, BoerseDepot + i).ClearContents
Next i
AbfrageErgebnis = CStr(ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Value)
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Replace what:=",", replacement:=";"
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Replace what:=".", replacement:=","
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).TextToColumns Destination:=ActiveSheet.Cells(AktuelleZeile, InternetAbfrageErgebnisDepot), DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2))
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).ClearContents
ActiveSheet.Cells(AktuelleZeile, KursAktuellDepot) = Round(CDbl(ActiveSheet.Cells(AktuelleZeile, InternetAbfrageKursDepot)), 3)
AktuelleZeile = AktuelleZeile + 1
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
Wend
ActiveSheet.Cells(60, 25).Value = Date
ActiveSheet.Cells(61, 25).Value = Time
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
SheetSchuetzen
Exit Sub
ErrorHandler:
If Err.Number = 13 Then
Resume Next
ElseIf Err.Number <> 0 Then
Mldg = "Fehler # " & Str(Err.Number) & " wurde ausgelöst von " & Err.Source & Chr(13) & Err.Description
MsgBox Mldg, , "Fehler"
End If
SheetSchuetzen
End Sub
Private Sub CommandButton5_Click()
DividendeZeile = ActiveCell.Row
If ActiveSheet.Cells(DividendeZeile, WKNDepot).Value = "" Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
ElseIf (DividendeZeile < ErsteZeileDepot) Or (DividendeZeile > LetzteZeileDepot) Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
Else
UserForm5.FormularVorbereiten
UserForm5.Show
End If
End Sub
Private Sub CommandButton6_Click()
UserForm4.FormularVorbereiten
UserForm4.Show
End Sub
Private Sub CommandButton8_Click()
On Error GoTo ErrorHandler
LoeschZeile = ActiveCell.Row
If ActiveSheet.Cells(LoeschZeile, WKNDepot).Value = "" Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
ElseIf (LoeschZeile < ErsteZeileDepot) Or (LoeschZeile > LetzteZeileDepot) Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
Else
Zeile = LoeschZeile
SheetFreigeben
While ActiveSheet.Cells(Zeile, WKNDepot).Value <> ""
ActiveSheet.Cells(Zeile, WKNDepot).Value = ActiveSheet.Cells((Zeile + 1), WKNDepot).Value
ActiveSheet.Cells(Zeile, NameDepot).Value = ActiveSheet.Cells((Zeile + 1), NameDepot).Value
ActiveSheet.Cells(Zeile, StueckDepot).Value = ActiveSheet.Cells((Zeile + 1), StueckDepot).Value
ActiveSheet.Cells(Zeile, KaufdatumDepot).Value = ActiveSheet.Cells((Zeile + 1), KaufdatumDepot).Value
ActiveSheet.Cells(Zeile, KursDepot).Value = ActiveSheet.Cells((Zeile + 1), KursDepot).Value
ActiveSheet.Cells(Zeile, GebuehrDepot).Value = ActiveSheet.Cells((Zeile + 1), GebuehrDepot).Value
ActiveSheet.Cells(Zeile, KursAktuellDepot).Value = ActiveSheet.Cells((Zeile + 1), KursAktuellDepot).Value
ActiveSheet.Cells(Zeile, DividendeDepot).Value = ActiveSheet.Cells((Zeile + 1), DividendeDepot).Value
ActiveSheet.Cells(Zeile, InternetAbfrageBoerse).Value = ActiveSheet.Cells((Zeile + 1), InternetAbfrageBoerse).Value
For i = 1 To 11
ActiveSheet.Cells(Zeile, InternetAbfrageBoerse + i).Value = ActiveSheet.Cells((Zeile + 1), InternetAbfrageBoerse + i).Value
Next i
ActiveSheet.Cells(Zeile, BemerkungDepot).Value = ActiveSheet.Cells((Zeile + 1), BemerkungDepot).Value
Zeile = Zeile + 1
Wend
SheetSchuetzen
End If
Exit Sub
ErrorHandler:
If Err.Number <> 0 Then
Mldg = "Fehler # " & Str(Err.Number) & " wurde ausgelöst von " & Err.Source & Chr(13) & Err.Description
MsgBox Mldg, , "Fehler"
End If
SheetSchuetzen
End Sub
An Greenspan
im Orderbuch Reiter unten links mit rechter Maustaste drauf
Code anzeigen lassen
falls Passwort velangt wird siehe ein paar einträge vorher knacken.
( genau nach Anweisung vorgehen)
Und dann den ganzen Code oben reinkopieren.
Den alten erst entfernen.
Bei mir klappt es.
Und nicht vergessen die WKN auf Yahoo Symbole ändern in der normalen Ansicht.
blackmoana
27.04.2007, 21:36
Danke für die gute Anleitung, bei mir hat es jetzt auch geklappt, allerdings verstehe ich folgenden Satz nicht:
"Und nicht vergessen die WKN auf Yahoo Symbole ändern in der normalen Ansicht."
Was soll ich da tun?
Und noch ne Frage: Bei Aktien bekomme ich keinen Kurs. Habt ihr hier ne Lösung dafür?
Danke für die Unterstützung eines absoluten Programmierlaien.
Kicktenan
27.04.2007, 21:57
@ A.Greenspan i.R
Kommst du nicht in den VBA Editor?
Ein leeres hochladen?
Nein sorry, es ist Freeware, keine Open Source.
Es sind zweierlei Dinge, sich angesichts des eingestellten Supports, über mögliche Wege zum beheben von Problemen oder über Erweiterungen zu unterhalten, oder einfach die veränderte Software eines Anderen zu verbreiten.
@ nob
Glückwunsch, programmieren lernen ist nicht schwer, es kostet nur manchmal viel Zeit und Nerven, besonders anfangs.
@blackmoana
"Und nicht vergessen die WKN auf Yahoo Symbole ändern in der normalen Ansicht."
Meint: - in Excel, MG-Orderbuch, Tabelle Depot, Spalte ISIN (wo die WKN steht/stand), musst du bei Aktien das zugehörige Kürzel für Yahoo suchen http://de.finance.yahoo.com/q/cp?s=%5EGDAXI und die WKN damit ersetzen.
Du gibst aber nicht (Beispiel) ALV.DE ein, sondern nur ALV
Für Derivate gilt weiterhin die WKN + Börse (http://www.aktienboard.com/wiki/B%C3%B6rse) SG, was man ja einstellen kann.
A.Greenspan i.R
27.04.2007, 22:50
ich habs auch hinbekommen :D
war aber nur ein test. habe etwas falsches gelöscht.
werde es wenn ich wieder zeit habe nochmal durchführen :)
blackmoana
27.04.2007, 23:46
@ Kicktenan
Mille Grazie! Es funkt :-) Toll, dass du und andere so schnell und kompetent Hilfestellung leistet.
@ nob
Glückwunsch, programmieren lernen ist nicht schwer, es kostet nur manchmal viel Zeit und Nerven, besonders anfangs.
Das ist wohl war!!!!!!!!!!!
Kleiner Schönheitsfehler ist noch die Uhrzeit ------"1:46pm"------
aber damit läßt es sich leben.
Wie ich Yahoo kenne, hält das eh nur eine weile.
Wir werden uns sicherlich hier wierdertreffen... ;)
A.Greenspan i.R
29.04.2007, 13:06
so habe es jetzt auch hinbekommen :)
bis auf ein fond findet er alles.
(HSCB Indien) :angry:
Hallo, :tup:
ohh Danke für die Hilfe, nun funktioniert das Teil wieder richtig!
Gruß Predo
tach!
bitte um hilfe!!
den blattschutz habe ich aufgehoben der war ja easy aber im visual kann ich das pw nicht zurücksetzten hatte es mit dem pgm. von page 4 probiert aber es klappt nicht.
kan mir da wer helfen?
lg
DaBuschi
02.05.2007, 11:50
tach!
kann ich das pw nicht zurücksetzten hatte es mit dem pgm. von page 4 probiert aber es klappt nicht.
kan mir da wer helfen?
lg
Hast Du das PW gecrackt mit dem Tool, dass Du Dir auch auf Page 4 runterladen kannst?
ja habe ich aber irgendwie klappt das ganze bei mir nicht.
habe es mit office 2007 und 2003 probiert, genau nach anleitung.
A.Greenspan i.R
07.05.2007, 12:19
ja habe ich aber irgendwie klappt das ganze bei mir nicht.
habe es mit office 2007 und 2003 probiert, genau nach anleitung.
notfalls nimmst halt das ;) http://www.boerse-pur.de/ExcelUtilities.htm
DaBuschi
07.05.2007, 12:19
ja habe ich aber irgendwie klappt das ganze bei mir nicht.
Hast ne PN
InTheZone
07.05.2007, 14:23
hab da mal ne frage zum orderbuch ;):
wenn ich das orderbuch 2.2. tool benutzen möchte ohne mich stunden daran zu setzetn damit die automatische kursabfrage funktioniert, dann kann ich ja theoretisch einfach die kurse manuell eingeben.
ich möchte das tool als musterdepot benutzen, damit jedoch möglichst nah, vor allem im bereich unkosten usw. ans reale trading rankommen.
was muss ich also beachten?
was sollte ich für gebühren bei kauf und verkauf berechnen?
gibt es auch gebühren für das setzten eines stop-loss?
mit wieviel zeit muss ich rechnen die zwischen einer abgabe einer order und deren ausführung besteht, genau so beim ausführen eines stop-loss?
ich denke das sollte man schon alles beachten bei einem musterdepot, da man sonst evtl sehr "verschönte" zahlen herausbekommt.
wäre dankbar für jede hilfe
MfG InTheZone
Wie ich sehe hat Yahoo wieder einmal sein Format geändert. *g
Punkt, Komma hat man wieder zurück genommen.
Nimmt einfach die Zeilen "replace" wider raus.
@InTheZone
Du machst es dir aber schwer! Nimm doch einfach die Gebührenstruktur deiner Hausbank.
DaBuschi
09.05.2007, 20:10
Wie ich sehe hat Yahoo wieder einmal sein Format geändert. *g
Punkt, Komma hat man wieder zurück genommen.
Kann ich so nicht bestätigen. Von welcher Website fragt Ihr denn ab? Ich hab bei der Änderung des Scripts gleichmal die Website auf das amerikanische Original geändert.
Bei der deutschen Website kann ich mir eine Änderung aus Gründen des Kundenservice gut vorstellen, aber bei mir funzt noch alles einwandfrei.
Blue-Thunder81
10.05.2007, 09:27
Hallo.
Nachdem ich das Orderbuch letzte Woche endlich wieder zum laufen gebracht habe funktioniert es wieder nicht.
Es kommt bei mir eine Meldung:
"Sollen die Inhalte der Zellen des Zielbereiches überschrieben werden"
OK oder Abbrechen
Wenn ich auf Ok klicke kommt die Meldung so oft wie ich Positionen im Depot habe. Die Kurse die abgerufen werden passen auch nicht.
Habt ihr einen Tip. Bzw. wenn ihr den Code wieder hinbekommt könntet ihr den klpt. Code wieder einstellen, also nicht nur die einzelnen Zeilen?
Das wäre super lieb, denn ich bin ein totaler Blindfisch in solchen Dingen.
Danke schon mal im Voraus!!
Kicktenan
10.05.2007, 11:05
..... die Meldung hatte ich gestern auch plötzlich, obwohl es vorher ging. Der Abruf funktioniert weiterhin. Vielleicht hat XP was mit einem Auto-Update installiert.
Es gibt einen VBA Befehl der Warnhinweise für eine Tabelle abschaltet.
Sinngemäss ``ActiveSheet.EnableAllerts = False´´
Genaueres wies ich jetzt aber auch noch nicht....
..werd am WE mal Googeln und schauen....
Blue-Thunder81
10.05.2007, 12:06
..... die Meldung hatte ich gestern auch plötzlich, obwohl es vorher ging. Der Abruf funktioniert weiterhin. Vielleicht hat XP was mit einem Auto-Update installiert.
Es gibt einen VBA Befehl der Warnhinweise für eine Tabelle abschaltet.
Sinngemäss ``ActiveSheet.EnableAllerts = False´´
Genaueres wies ich jetzt aber auch noch nicht....
..werd am WE mal Googeln und schauen....
Nein, leider eben nicht. Der Abruf funktioniert nicht richtig.
Die Kurse werden gerundet, auf oder ab, wie auch immer. Jedenfalls stimmt der Kurs nicht mit dem an der Börse überein.
Kicktenan
10.05.2007, 12:46
OK, Ranya hats ja bereits erklärt.
Wenn man die beiden Zeilen ….
' ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Replace what:=",", replacement:=";"
' ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Replace what:=".", replacement:=","
….mit einem `` ’ ´´ abschaltet, kommt auch diese Meldung nicht mehr.
Ich dachte das seien nun 2 Baustellen. :bang:
Blue-Thunder81
10.05.2007, 12:56
Hallo Kicktenan
Könntest du evtl. den ganzen Code zum kopieren hier einstellen? Das wäre klasse von dir !!! :-)
Kicktenan
10.05.2007, 13:09
Hab schnell den von nob angepasst, meiner ist nicht mehr so ordentlich.
http://www.aktienboard.com/vb/showthread.php?t=66666&page=6
Option Explicit
Private Sub CommandButton1_Click()
ZukaufZeile = ActiveCell.Row
If (ZukaufZeile >= 7 And ZukaufZeile <= 56) And ActiveSheet.Cells(ZukaufZeile, StueckDepot).Value > 0 Then
UserForm6.FormularVorbereiten
UserForm6.Show
Else
UserForm1.FormularVorbereiten
UserForm1.Show
End If
End Sub
Private Sub CommandButton2_Click()
VerkaufZeile = ActiveCell.Row
If ActiveSheet.Cells(VerkaufZeile, WKNDepot).Value = "" Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
ElseIf (VerkaufZeile < ErsteZeileDepot) Or (VerkaufZeile > LetzteZeileDepot) Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
Else
UserForm2.FormularVorbereiten
UserForm2.Show
End If
End Sub
Private Sub CommandButton3_Click()
SplitZeile = ActiveCell.Row
If ActiveSheet.Cells(SplitZeile, WKNDepot).Value = "" Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
ElseIf (SplitZeile < ErsteZeileDepot) Or (SplitZeile > LetzteZeileDepot) Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
Else
UserForm3.FormularVorbereiten
UserForm3.Show
End If
End Sub
Private Sub CommandButton4_Click()
Dim Abfrage As String
Dim AbfrageName As String
Dim BoerseKuerzel As String
Dim Mldg
On Error GoTo ErrorHandler
AktuelleZeile = ErsteZeileDepot
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
SheetFreigeben
'Internet Abfrage aufbauen und durchfuehren
While AktuelleWKN <> ""
AktuelleBoerse = CStr(ActiveSheet.Cells(AktuelleZeile, BoerseDepot).Value)
BoerseKuerzel = "F"
If AktuelleBoerse = "DE - Xetra (http://www.aktienboard.com/wiki/XETRA)" Then BoerseKuerzel = "DE"
If AktuelleBoerse = "DE - Frankfurt" Then BoerseKuerzel = "F"
'If AktuelleBoerse = "DE - Berlin (http://www.aktienboard.com/wiki/Berlin)" Then BoerseKuerzel = "BE"
If AktuelleBoerse = "DE - Berlin (http://www.aktienboard.com/wiki/Berlin)/ Bremen" Then BoerseKuerzel = "BE"
If AktuelleBoerse = "DE - Düsseldorf" Then BoerseKuerzel = "DU"
If AktuelleBoerse = "DE - Hamburg (http://www.aktienboard.com/wiki/Hamburg)" Then BoerseKuerzel = "HM"
If AktuelleBoerse = "DE - Hannover" Then BoerseKuerzel = "HA"
If AktuelleBoerse = "DE - München" Then BoerseKuerzel = "MU"
If AktuelleBoerse = "DE - Stuttgart" Then BoerseKuerzel = "SG"
'If AktuelleBoerse = "GB - London" Then BoerseKuerzel = "L"
If AktuelleBoerse = "F - Paris" Then BoerseKuerzel = "PA"
If AktuelleBoerse = "NL - Amsterdam" Then BoerseKuerzel = "AS"
If AktuelleBoerse = "B - Brüssel" Then BoerseKuerzel = "BR"
If AktuelleBoerse = "IRL - Dublin" Then BoerseKuerzel = "I"
'If AktuelleBoerse = "DK - Kopenhagen" Then BoerseKuerzel = "CO"
If AktuelleBoerse = "P - Lissabon" Then BoerseKuerzel = "LS"
If AktuelleBoerse = "I - Mailand" Then BoerseKuerzel = "MI"
If AktuelleBoerse = "E - Madrid" Then BoerseKuerzel = "MC"
'If AktuelleBoerse = "S - Stockholm" Then BoerseKuerzel = "ST"
If AktuelleBoerse = "A - Wien" Then BoerseKuerzel = "VI"
'If AktuelleBoerse = "CH - Zürich" Then BoerseKuerzel = "S"
AbfrageName = AktuelleWKN + "." + BoerseKuerzel
'Abfrage = "URL;http://de.old.finance.yahoo.com/d/quotes.csv?f=sl1t1c1ghpv&e=.csv&s=" + AktuelleWKN + "." + BoerseKuerzel
'#
Abfrage = "URL;http://de.old.finance.yahoo.com/d/quotes.csv?s=" + AktuelleWKN + "." + BoerseKuerzel + "&f=sl1d1t1c1ohgv&e=.csv"
'#
With ActiveSheet.QueryTables.Add(Connection:=Abfrage, Destination:=ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot))
.Name = AbfrageName
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = False
.AdjustColumnWidth = False
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.Refresh BackgroundQuery:=False
End With
AktuelleZeile = AktuelleZeile + 1
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
Wend
'Abfrageergebnis parsen und eintragen
AktuelleZeile = ErsteZeileDepot
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
While AktuelleWKN <> ""
For i = 1 To 9
ActiveSheet.Cells(AktuelleZeile, BoerseDepot + i).ClearContents
Next i
AbfrageErgebnis = CStr(ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Value)
'#
'ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Replace what:=",", replacement:=";"
'ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Replace what:=".", replacement:=","
'#
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).TextToColumns Destination:=ActiveSheet.Cells(AktuelleZeile, InternetAbfrageErgebnisDepot), DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2))
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).ClearContents
ActiveSheet.Cells(AktuelleZeile, KursAktuellDepot) = Round(CDbl(ActiveSheet.Cells(AktuelleZeile, InternetAbfrageKursDepot)), 3)
AktuelleZeile = AktuelleZeile + 1
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
Wend
ActiveSheet.Cells(60, 25).Value = Date
ActiveSheet.Cells(61, 25).Value = Time
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
SheetSchuetzen
Exit Sub
ErrorHandler:
If Err.Number = 13 Then
Resume Next
ElseIf Err.Number <> 0 Then
Mldg = "Fehler # " & Str(Err.Number) & " wurde ausgelöst von " & Err.Source & Chr(13) & Err.Description
MsgBox Mldg, , "Fehler"
End If
SheetSchuetzen
End Sub
Private Sub CommandButton5_Click()
DividendeZeile = ActiveCell.Row
If ActiveSheet.Cells(DividendeZeile, WKNDepot).Value = "" Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
ElseIf (DividendeZeile < ErsteZeileDepot) Or (DividendeZeile > LetzteZeileDepot) Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
Else
UserForm5.FormularVorbereiten
UserForm5.Show
End If
End Sub
Private Sub CommandButton6_Click()
UserForm4.FormularVorbereiten
UserForm4.Show
End Sub
Private Sub CommandButton8_Click()
On Error GoTo ErrorHandler
LoeschZeile = ActiveCell.Row
If ActiveSheet.Cells(LoeschZeile, WKNDepot).Value = "" Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
ElseIf (LoeschZeile < ErsteZeileDepot) Or (LoeschZeile > LetzteZeileDepot) Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
Else
Zeile = LoeschZeile
SheetFreigeben
While ActiveSheet.Cells(Zeile, WKNDepot).Value <> ""
ActiveSheet.Cells(Zeile, WKNDepot).Value = ActiveSheet.Cells((Zeile + 1), WKNDepot).Value
ActiveSheet.Cells(Zeile, NameDepot).Value = ActiveSheet.Cells((Zeile + 1), NameDepot).Value
ActiveSheet.Cells(Zeile, StueckDepot).Value = ActiveSheet.Cells((Zeile + 1), StueckDepot).Value
ActiveSheet.Cells(Zeile, KaufdatumDepot).Value = ActiveSheet.Cells((Zeile + 1), KaufdatumDepot).Value
ActiveSheet.Cells(Zeile, KursDepot).Value = ActiveSheet.Cells((Zeile + 1), KursDepot).Value
ActiveSheet.Cells(Zeile, GebuehrDepot).Value = ActiveSheet.Cells((Zeile + 1), GebuehrDepot).Value
ActiveSheet.Cells(Zeile, KursAktuellDepot).Value = ActiveSheet.Cells((Zeile + 1), KursAktuellDepot).Value
ActiveSheet.Cells(Zeile, DividendeDepot).Value = ActiveSheet.Cells((Zeile + 1), DividendeDepot).Value
ActiveSheet.Cells(Zeile, InternetAbfrageBoerse).Value = ActiveSheet.Cells((Zeile + 1), InternetAbfrageBoerse).Value
For i = 1 To 11
ActiveSheet.Cells(Zeile, InternetAbfrageBoerse + i).Value = ActiveSheet.Cells((Zeile + 1), InternetAbfrageBoerse + i).Value
Next i
ActiveSheet.Cells(Zeile, BemerkungDepot).Value = ActiveSheet.Cells((Zeile + 1), BemerkungDepot).Value
Zeile = Zeile + 1
Wend
SheetSchuetzen
End If
Exit Sub
ErrorHandler:
If Err.Number <> 0 Then
Mldg = "Fehler # " & Str(Err.Number) & " wurde ausgelöst von " & Err.Source & Chr(13) & Err.Description
MsgBox Mldg, , "Fehler"
End If
SheetSchuetzen
End Sub
DaBuschi
10.05.2007, 14:36
Ich wiederhole mich nochmal. Ich hab das Problem nicht und das liegt daran, dass ich meine Kurse nicht von der deutschen Website ziehe. Großer Vorteil davon ist, dass ich Kurse von allen Börsen ziehen kann, solange ich nur das richtige Yahoo-Kürzel verwende, aber dafür gibts ja die Suchfunktion bei Yahoo.
Mein Script sieht demnach wie folgt aus (zumindest der wichtige Teil davon):
While AktuelleWKN <> ""
AktuelleBoerse = CStr(ActiveSheet.Cells(AktuelleZeile, BoerseDepot).Value)
BoerseKuerzel = ""
If AktuelleBoerse = "DE - Xetra" Then BoerseKuerzel = "DE"
If AktuelleBoerse = "DE - Frankfurt" Then BoerseKuerzel = "F"
'If AktuelleBoerse = "DE - Berlin" Then BoerseKuerzel = "BE"
If AktuelleBoerse = "DE - Berlin/ Bremen" Then BoerseKuerzel = "BE"
If AktuelleBoerse = "DE - Düsseldorf" Then BoerseKuerzel = "DU"
If AktuelleBoerse = "DE - Hamburg" Then BoerseKuerzel = "HM"
If AktuelleBoerse = "DE - Hannover" Then BoerseKuerzel = "HA"
If AktuelleBoerse = "DE - München" Then BoerseKuerzel = "MU"
If AktuelleBoerse = "DE - Stuttgart" Then BoerseKuerzel = "SG"
'If AktuelleBoerse = "GB - London" Then BoerseKuerzel = "L"
If AktuelleBoerse = "F - Paris" Then BoerseKuerzel = "PA"
If AktuelleBoerse = "NL - Amsterdam" Then BoerseKuerzel = "AS"
If AktuelleBoerse = "B - Brüssel" Then BoerseKuerzel = "BR"
If AktuelleBoerse = "IRL - Dublin" Then BoerseKuerzel = "I"
'If AktuelleBoerse = "DK - Kopenhagen" Then BoerseKuerzel = "CO"
If AktuelleBoerse = "P - Lissabon" Then BoerseKuerzel = "LS"
If AktuelleBoerse = "I - Mailand" Then BoerseKuerzel = "MI"
If AktuelleBoerse = "E - Madrid" Then BoerseKuerzel = "MC"
'If AktuelleBoerse = "S - Stockholm" Then BoerseKuerzel = "ST"
If AktuelleBoerse = "A - Wien" Then BoerseKuerzel = "VI"
'If AktuelleBoerse = "CH - Zürich" Then BoerseKuerzel = "S"
AbfrageName = AktuelleWKN + "." + BoerseKuerzel
'Abfrage = "URL;http://finance.yahoo.com/d/quotes.csv?f=sl1t1c1ghpv&e=.csv&s=" + AktuelleWKN + "." + BoerseKuerzel
'#
Abfrage = "URL;http://finance.yahoo.com/d/quotes.csv?s=" + AktuelleWKN + "." + BoerseKuerzel + "&f=sl1d1t1c1ohgv&e=.csv"
'#
With ActiveSheet.QueryTables.Add(Connection:=Abfrage, Destination:=ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot))
.Name = AbfrageName
Ich hab die wichtigen Teile fett markiert. Bei der Abfrage von der deutschen Website war standardmäßig Frankfurt als Börse hinterlegt, deshalb habe ich dies gelöscht. Das ist die erste fett markierte Zeile. Dann hab ich anschließend nur noch die Website von Yahoo-Deutschland auf Yahoo-USA geändert und fertig ist das Ganze. Wie auch schon oben gesagt, funktioniert diese Abfrage für alle Aktien weltweit, für die Yahoo Daten liefert und damit auch für die Deutschen, wobei das Orderbuch vorher nur Daten für Deutsche Aktien geliefert hat.
Wichtig, bei diesem Script müsst Ihr die Zeile wo Punkt auf Komma oder was auch immer geändert wird, drinnen bleiben, da auf Yahoo.com die Daten in der amerikanischen Schreibweise dargestellt werden.
Viel Erfolg
Kicktenan
10.05.2007, 19:47
Ja das funktioniert auch!
Ich hab das Börsenkürzel aus dem Abfragestring raus genommen. Damit muss man aber als WKN das ganze Kürzel in der Spalte WKN angeben – also z.B. ALV.de oder nur GOOG oder WKN.sg bei Derivaten.
Abfrage = "URL;http://finance.yahoo.com/d/quotes.csv?s=" + AktuelleWKN + "." + "&f=sl1d1t1c1ohgv&e=.csv"
blackmoana
11.05.2007, 11:45
Schön, dass das nun bei wenigen funktioniert, wer kann aber für "Dummies" eine Anleitung schreiben, was genau zu machen ist - Schritt für Schritt. Danke :-)
DaBuschi
11.05.2007, 12:16
Schön, dass das nun bei wenigen funktioniert, wer kann aber für "Dummies" eine Anleitung schreiben, was genau zu machen ist - Schritt für Schritt. Danke :-)
Der Thread ist noch nicht so lang. Ich bin auch Dummie, aber ich hab mir den Thread durchgelesen und es ist alles erklärt. Wenn der Thread 100 Seiten hätte, hät ich Verständnis für Deine Bitte, aber die paar Posts durchzulesen ist net so schwer ;)
blackmoana
11.05.2007, 12:36
@ DaBuschi
Lesen kann ich! Habe den Thread mehrfach durchgelesen, aber ich bin kein Excelkönner und dementsprechend eben doch etwas dümmer :-). Wenn man mir genau erklären kann, was ich wo und wie mache, dann kapiere ich es auch. Bei letzten Mal hab ich es ja auch hinbekommen (siehe weiter oben im Thread). Also nochmals meine Bitte, was soll ich genau tun?
blackmoana
11.05.2007, 14:25
Es wäre einfacher gewesen, wenn Kickentan geschrieben hatte:
Ersetzt den Code, wie beim Thread No 59 beschrieben durch folgenden ...
Und für unwissende Nichtprogrammierer ist etwas zuviel drin. Denn
'Option Explicit'
wird nicht mit eingefügt! Dann funktioniert es DaBuschi, gell! Hätt' man mir ja gleich sagen können!
DaBuschi
11.05.2007, 15:18
Und für unwissende Nichtprogrammierer ist etwas zuviel drin. Denn
'Option Explicit'
wird nicht mit eingefügt! Dann funktioniert es DaBuschi, gell! Hätt' man mir ja gleich sagen können!
Wie gesagt, ich bin selbst kein Profi, deshalb hab ich auch keinen ganzen Code eingefügt, sondern nur die Dinge geändert, die geändert werden müssen. Da fühl ich mich sicherer, weil ich wie gesagt auch nur sehr rudimentäre Kenntnisse in VBA habe :D
Aber wenns jetzt bei Dir auch funzt, ist das ja schön ;)
Hab auch das Problem gehab das es nach einiger Zeit nicht mehr ging.
Jetzt klappt es wieder .
Dank an alle Vorarbeiter.
Es ist doch ein nehmen und geben in den Foren.
Also cool bleiben . Jeder hat seine stärken und schwächen .....
Formeln u.s.w. ist eine Sache lesen und verstehen dann auch...........
So sieht es jetzt bei mir im Code Sheet 1 aus
( z.Zt. kappt es mit allen Kursen wunderbar)
Private Sub CommandButton1_Click()
ZukaufZeile = ActiveCell.Row
If (ZukaufZeile >= 7 And ZukaufZeile <= 56) And ActiveSheet.Cells(ZukaufZeile, StueckDepot).Value > 0 Then
UserForm6.FormularVorbereiten
UserForm6.Show
Else
UserForm1.FormularVorbereiten
UserForm1.Show
End If
End Sub
Private Sub CommandButton2_Click()
VerkaufZeile = ActiveCell.Row
If ActiveSheet.Cells(VerkaufZeile, WKNDepot).Value = "" Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
ElseIf (VerkaufZeile < ErsteZeileDepot) Or (VerkaufZeile > LetzteZeileDepot) Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
Else
UserForm2.FormularVorbereiten
UserForm2.Show
End If
End Sub
Private Sub CommandButton3_Click()
SplitZeile = ActiveCell.Row
If ActiveSheet.Cells(SplitZeile, WKNDepot).Value = "" Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
ElseIf (SplitZeile < ErsteZeileDepot) Or (SplitZeile > LetzteZeileDepot) Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
Else
UserForm3.FormularVorbereiten
UserForm3.Show
End If
End Sub
Private Sub CommandButton4_Click()
Dim Abfrage As String
Dim AbfrageName As String
Dim BoerseKuerzel As String
Dim Mldg
On Error GoTo ErrorHandler
AktuelleZeile = ErsteZeileDepot
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
SheetFreigeben
'Internet Abfrage aufbauen und durchfuehren
While AktuelleWKN <> ""
AktuelleBoerse = CStr(ActiveSheet.Cells(AktuelleZeile, BoerseDepot).Value)
BoerseKuerzel = ""
If AktuelleBoerse = "DE - Xetra" Then BoerseKuerzel = "DE"
If AktuelleBoerse = "DE - Frankfurt" Then BoerseKuerzel = "F"
'If AktuelleBoerse = "DE - Berlin" Then BoerseKuerzel = "BE"
If AktuelleBoerse = "DE - Berlin/ Bremen" Then BoerseKuerzel = "BE"
If AktuelleBoerse = "DE - Düsseldorf" Then BoerseKuerzel = "DU"
If AktuelleBoerse = "DE - Hamburg" Then BoerseKuerzel = "HM"
If AktuelleBoerse = "DE - Hannover" Then BoerseKuerzel = "HA"
If AktuelleBoerse = "DE - München" Then BoerseKuerzel = "MU"
If AktuelleBoerse = "DE - Stuttgart" Then BoerseKuerzel = "SG"
'If AktuelleBoerse = "GB - London" Then BoerseKuerzel = "L"
If AktuelleBoerse = "F - Paris" Then BoerseKuerzel = "PA"
If AktuelleBoerse = "NL - Amsterdam" Then BoerseKuerzel = "AS"
If AktuelleBoerse = "B - Brüssel" Then BoerseKuerzel = "BR"
If AktuelleBoerse = "IRL - Dublin" Then BoerseKuerzel = "I"
'If AktuelleBoerse = "DK - Kopenhagen" Then BoerseKuerzel = "CO"
If AktuelleBoerse = "P - Lissabon" Then BoerseKuerzel = "LS"
If AktuelleBoerse = "I - Mailand" Then BoerseKuerzel = "MI"
If AktuelleBoerse = "E - Madrid" Then BoerseKuerzel = "MC"
'If AktuelleBoerse = "S - Stockholm" Then BoerseKuerzel = "ST"
If AktuelleBoerse = "A - Wien" Then BoerseKuerzel = "VI"
'If AktuelleBoerse = "CH - Zürich" Then BoerseKuerzel = "S"
AbfrageName = AktuelleWKN + "." + BoerseKuerzel
'Abfrage = "URL;http://finance.yahoo.com/d/quotes.csv?f=sl1t1c1ghpv&e=.csv&s=" + AktuelleWKN + "." + BoerseKuerzel
Abfrage = "URL;http://finance.yahoo.com/d/quotes.csv?s=" + AktuelleWKN + "." + "&f=sl1d1t1c1ohgv&e=.csv"
With ActiveSheet.QueryTables.Add(Connection:=Abfrage, Destination:=ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot))
.Name = AbfrageName
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = False
.AdjustColumnWidth = False
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.Refresh BackgroundQuery:=False
End With
AktuelleZeile = AktuelleZeile + 1
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
Wend
'Abfrageergebnis parsen und eintragen
AktuelleZeile = ErsteZeileDepot
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
While AktuelleWKN <> ""
For i = 1 To 9
ActiveSheet.Cells(AktuelleZeile, BoerseDepot + i).ClearContents
Next i
AbfrageErgebnis = CStr(ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Value)
'#
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Replace what:=",", replacement:=";"
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Replace what:=".", replacement:=","
'#
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).TextToColumns Destination:=ActiveSheet.Cells(AktuelleZeile, InternetAbfrageErgebnisDepot), DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2))
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).ClearContents
ActiveSheet.Cells(AktuelleZeile, KursAktuellDepot) = Round(CDbl(ActiveSheet.Cells(AktuelleZeile, InternetAbfrageKursDepot)), 3)
AktuelleZeile = AktuelleZeile + 1
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
Wend
ActiveSheet.Cells(60, 25).Value = Date
ActiveSheet.Cells(61, 25).Value = Time
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
SheetSchuetzen
Exit Sub
ErrorHandler:
If Err.Number = 13 Then
Resume Next
ElseIf Err.Number <> 0 Then
Mldg = "Fehler # " & Str(Err.Number) & " wurde ausgelöst von " & Err.Source & Chr(13) & Err.Description
MsgBox Mldg, , "Fehler"
End If
SheetSchuetzen
End Sub
Private Sub CommandButton5_Click()
DividendeZeile = ActiveCell.Row
If ActiveSheet.Cells(DividendeZeile, WKNDepot).Value = "" Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
ElseIf (DividendeZeile < ErsteZeileDepot) Or (DividendeZeile > LetzteZeileDepot) Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
Else
UserForm5.FormularVorbereiten
UserForm5.Show
End If
End Sub
Private Sub CommandButton6_Click()
UserForm4.FormularVorbereiten
UserForm4.Show
End Sub
Private Sub CommandButton8_Click()
On Error GoTo ErrorHandler
LoeschZeile = ActiveCell.Row
If ActiveSheet.Cells(LoeschZeile, WKNDepot).Value = "" Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
ElseIf (LoeschZeile < ErsteZeileDepot) Or (LoeschZeile > LetzteZeileDepot) Then
MsgBox ("Markieren Sie im Depot eine gültige Zeile.")
Else
Zeile = LoeschZeile
SheetFreigeben
While ActiveSheet.Cells(Zeile, WKNDepot).Value <> ""
ActiveSheet.Cells(Zeile, WKNDepot).Value = ActiveSheet.Cells((Zeile + 1), WKNDepot).Value
ActiveSheet.Cells(Zeile, NameDepot).Value = ActiveSheet.Cells((Zeile + 1), NameDepot).Value
ActiveSheet.Cells(Zeile, StueckDepot).Value = ActiveSheet.Cells((Zeile + 1), StueckDepot).Value
ActiveSheet.Cells(Zeile, KaufdatumDepot).Value = ActiveSheet.Cells((Zeile + 1), KaufdatumDepot).Value
ActiveSheet.Cells(Zeile, KursDepot).Value = ActiveSheet.Cells((Zeile + 1), KursDepot).Value
ActiveSheet.Cells(Zeile, GebuehrDepot).Value = ActiveSheet.Cells((Zeile + 1), GebuehrDepot).Value
ActiveSheet.Cells(Zeile, KursAktuellDepot).Value = ActiveSheet.Cells((Zeile + 1), KursAktuellDepot).Value
ActiveSheet.Cells(Zeile, DividendeDepot).Value = ActiveSheet.Cells((Zeile + 1), DividendeDepot).Value
ActiveSheet.Cells(Zeile, InternetAbfrageBoerse).Value = ActiveSheet.Cells((Zeile + 1), InternetAbfrageBoerse).Value
For i = 1 To 11
ActiveSheet.Cells(Zeile, InternetAbfrageBoerse + i).Value = ActiveSheet.Cells((Zeile + 1), InternetAbfrageBoerse + i).Value
Next i
ActiveSheet.Cells(Zeile, BemerkungDepot).Value = ActiveSheet.Cells((Zeile + 1), BemerkungDepot).Value
Zeile = Zeile + 1
Wend
SheetSchuetzen
End If
Exit Sub
ErrorHandler:
If Err.Number <> 0 Then
Mldg = "Fehler # " & Str(Err.Number) & " wurde ausgelöst von " & Err.Source & Chr(13) & Err.Description
MsgBox Mldg, , "Fehler"
End If
SheetSchuetzen
End Sub
Nicht vergessen
bei den Symbolen das jeweilige Börsenort -Kürzel anzuhängen
z.B FXXN.DE nicht nur FXXN
Kicktenan
12.05.2007, 21:25
Sorry, dass es Probleme mit 'Option Explicit' gab.
Es war mit beim schnellen kopieren mit rein gerutscht. Ich hatte den VBA Editor als Editor für nobs Version benutzt. Bei mir ist das Ding so eingestellt, dass es in neue Scripte automatisch oben dazugeschrieben wird. Option Explicit weist eigentlich nur den Debugger an, besonders streng zu sein, er meckert also wenn eine Variable nicht oder nicht ganz richtig deklariert ist. Das aber nur so am Rande.
Wenn ich es so machen würde, dass ich nur Antworte, wenn ich alles getestet und als DAU –Anleitung fertig gestellt hätte, dann müsste ich wohl oft aus Zeitmangel schweigen. Lieber blamiere ich mich aber mal etwas. Es ist für mich schwer nachvollziehbar, was so schwer daran sein soll den Code, nach all dem was bereits geschrieben steht, zu ändern. Es ging nie um mehr, als um 3 Zeilen, eine für den Abruf und 2 für die Punkte und Kommas.
Betroffen ist nur die Prozedur ``Private Sub CommandButton4_Click() …… bis End Sub´´
Im Abrufstring unter #83, ist noch ein Fehler, der den Abruf aber nicht beeinträchtigt.
So stimmt es:
Abfrage = "URL;http://finance.yahoo.com/d/quotes.csv?s=" + AktuelleWKN + "&f=sl1d1t1c1ohgv&e=.csv"Hab die Prozedur CommandButton4_Click() gekürzt, da der Teil mit Börsenkürzel überflüssig ist, wenn man es bereits in der WKN-Spalte komplett eingibt.
Entspricht Private Sub CommandButton4_Click() aus #89 - nur gekürzt!
Private Sub CommandButton4_Click()
Dim Abfrage As String
Dim AbfrageName As String
Dim Mldg
On Error GoTo ErrorHandler
AktuelleZeile = ErsteZeileDepot
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
SheetFreigeben
'Internet Abfrage aufbauen und durchfuehren
While AktuelleWKN <> ""
AbfrageName = AktuelleWKN
Abfrage = "URL;http://finance.yahoo.com/d/quotes.csv?s=" + AktuelleWKN + "&f=sl1d1t1c1ohgv&e=.csv"
With ActiveSheet.QueryTables.Add(Connection:=Abfrage, Destination:=ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot))
.Name = AbfrageName
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = False
.AdjustColumnWidth = False
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.Refresh BackgroundQuery:=False
End With
AktuelleZeile = AktuelleZeile + 1
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
Wend
'Abfrageergebnis parsen und eintragen
AktuelleZeile = ErsteZeileDepot
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
While AktuelleWKN <> ""
For i = 1 To 9
ActiveSheet.Cells(AktuelleZeile, BoerseDepot + i).ClearContents
Next i
AbfrageErgebnis = CStr(ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Value)
'#
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Replace what:=",", replacement:=";"
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).Replace what:=".", replacement:=","
'#
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).TextToColumns Destination:=ActiveSheet.Cells(AktuelleZeile, InternetAbfrageErgebnisDepot), DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2))
ActiveSheet.Cells(AktuelleZeile, InternetAbfrageDepot).ClearContents
ActiveSheet.Cells(AktuelleZeile, KursAktuellDepot) = Round(CDbl(ActiveSheet.Cells(AktuelleZeile, InternetAbfrageKursDepot)), 3)
AktuelleZeile = AktuelleZeile + 1
AktuelleWKN = CStr(ActiveSheet.Cells(AktuelleZeile, WKNDepot).Value)
Wend
ActiveSheet.Cells(60, 25).Value = Date
ActiveSheet.Cells(61, 25).Value = Time
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
SheetSchuetzen
Exit Sub
ErrorHandler:
If Err.Number = 13 Then
Resume Next
ElseIf Err.Number <> 0 Then
Mldg = "Fehler # " & Str(Err.Number) & " wurde ausgelöst von " & Err.Source & Chr(13) & Err.Description
MsgBox Mldg, , "Fehler"
End If
SheetSchuetzen
End Sub
Danke für die mühe.
Jetzt müßte aber jeder zurechtkommen.
InTheZone
13.05.2007, 15:06
mal ne frage, kann ich mit dem mg orderbuch auch irgendwie short gehen? :wonder:
Kicktenan
13.05.2007, 18:12
@InTheZone
versuch mal den Code im VBA der Tabelle Depot zu ändern, dann kann man ja weiter sehen...
Änderung: `` > 0 ´´ aus if Anweisung des Private Sub CommandButton1_Click() gelöscht
Private Sub CommandButton1_Click()
ZukaufZeile = ActiveCell.Row
If (ZukaufZeile >= 7 And ZukaufZeile <= 56) And ActiveSheet.Cells(ZukaufZeile, StueckDepot).Value Then
UserForm6.FormularVorbereiten
UserForm6.Show
Else
UserForm1.FormularVorbereiten
UserForm1.Show
End If
End Sub
Blue-Thunder81
13.05.2007, 22:55
Danke Leute !
Mein geliebtes und selbst erweitertes (Charts ...) MG-Orderbuch funktioniert wieder ! ! !
Danke an den Thread :-)
LG
Blue
Absolut !:) Respekt an den Beteiligten hier, super Thread ! :tup:
Danke Leute !
Mein geliebtes und selbst erweitertes (Charts ...) MG-Orderbuch funktioniert wieder ! ! !
Danke an den Thread :-)
LG
Blue
An der Variante hätten vielleicht auch andere Interesse!!!!!!!!!!!!!
DaBuschi
14.05.2007, 08:57
An der Variante hätten vielleicht auch andere Interesse!!!!!!!!!!!!!
Ich auch!!! :D
Blue-Thunder81
14.05.2007, 09:55
Also die Charts die ich erwähnt hatte beziehen sich nur auf die Performance des Depots ( Ein Chart für ein Kalenderjahr (Wochenabschluss) , einer für Alltime (Monatsabschluss)
Leider müssen die Daten von Hand eingetragen werden. Also immer am Wochenende trage ich die entsprechenden daten ein ( Depotwert, Nettoprofit und Gesamtperformance)
Also so ganz optimal ist das noch nicht. Aber ich komme sehr gut damit klar.
Wenn ihr möchtet kann ich Orderbuch mal zum Download bereit stellen.
Blue-Thunder81
14.05.2007, 10:21
Ich habe dann mal meine Version (natürlich nackt ohne meine Daten ;-) ) zum Download bereit gestellt.
Die Charts zeigen wie oben schon gesagt die Gesamtperformance (Alltime im Monatsabschluss und einen Chart für das laufende Kalenderjahr im Wochenabschluss)
Zum Ende einer jeden Woche muss dann LEIDER von Hand die Daten eingetragen werden.
Folg. Daten werden im Blatt "Dateneingabe für Charts" eingetragen:
Depotwert, Netto-Profit, Gesamtperformance
Diese Daten liest man im Blatt Statistik ab.
Geht auf meine Homepage, dort dann unter Download:
www.bjoernwiedemann.de.tl
Kicktenan
21.05.2007, 22:49
Zur Speicherung von Depotkennzahlen in einer extra Tabelle, hab ich nun ein Makro erstellt, das den Depotverlauf auf Knopfdruck dokumentiert. Die Einträge können danach bei Bedarf frei editiert werden. Das Makro lässt sich auch auf den Sheet Statistik erweitern. Das erzeugen von Charts müsste später auch per Makro gehen, das hab ich aber noch nie versucht. Die ``if´´ Anweisung verhindert das Eintragen von mehreren Datensätzen an einem Tag, wenn sie + ``End If´´entfernt werden, wird mit jedem Durchlauf eine neue Zeile geschrieben. Um eine letzte Zeile zu überschreiben, einfach das Datum der letzten Zeile löschen.
Es ist nur ein Entwurf für eine einfache ``Datenbank´´. Ich wollte auch den Cashbestand mit erfassen, der mir immer gefehlt hat. Dafür hab ich die Zelle ``C 59´´ im Depot genutzt. Wer das und anderes nicht will, kann die entsprechenden stellen im Code ja weglassen, oder verändern. Anregungen und Verbesserungen sind willkommen.
Anleitung:
1. Neue Tabelle ins Orderbuch einfügen und in ``DB´´ umbenennen
2. In den VBA Editor wechseln, die VBA Tabelle ``DB´´ auswählen und den Code einfügen.
3. Nur zur besseren Übersicht, zurück zur Tabelle ``DB´´ nach EXCEL wechseln, eine Kopfzeile z.B. mit
DATUM, GuV %, GuV €, DEPOT, CASH, VERMÖGEN,
erstellen
4. Zelle ``A 2´´ in Tabelle ``DB´´anklicken, ``=heute()-1´´oder ein früheres Datum im Format ``20.05.2007´´ eingeben (Zeile kann später gelöscht werden, es erscheint mir nur wegen der Datumsprüfung in VBA zum start nötig)
5. In die Zelle C 59 der Tabelle Depot einen Cashbestand eingeben. (Schreibschutz dazu aufheben)
6. Eine Befehlsschaltfläche im die Tabelle ``DB´´ einfügen und in den Eigenschaften (zu finden über die rechte Maustaste auf dem Button) in CommandButton101 umbenennen. (das ging bei mir aber alles nur mit ausgeschalteten Makros)
– Alternativ kann vorerst auch ``Private Sub CommandButton101_Click()´´ in ``Sub DB_EINTRAG()´´ umbenannt werden und über ``Alt + F8´´ gestartet werden. Achtung, der eigentliche Code muss immer zwische ``Sub xxx()´´ und ``End Sub´´ stehen, der VBA Editor fügt das ``End Sub´´ gene automatisch ein!
Ich kann mir schon vorstellen, dass einigen das erstellen und zuweisen eines CommandButton schwer erscheint, ist es aber gar nicht, wenn man die Hilfe und Google nutzt. Beim zweiten ist es dann schon ein Kinderspiel.
Option Explicit
Private Sub CommandButton101_Click()
'Sub DB_EINTRAG()
Dim DepotDatum As Date ' GuV in %
Dim summe1 As String (http://www.aktienboard.com/wiki/String) ' GuV in %
Dim summe2 As Integer ' GuV in €
Dim summe3 As Integer ' Depotwert
Dim summe4 As Integer ' Cash
Dim lastDBz As Long
' Letzte Zelle in DB finden
lastDBz = Sheets("DB").Cells(Rows.Count, 1).End(xlUp).Row
' Prüfen ob ein neueres Datum im Depot vorhanden ist, nur wenn ja, wird eine neue Zeile beschrieben
' wenn ein überschreiben gewünscht wird, einfach das Datum der letzten Zeile löschen
If Sheets("Depot").Cells(59, 13).Value > Sheets("DB").Cells(lastDBz, 1).Value Then
'Datum und Summen aus ``Depot´´ auslesen
DepotDatum = Sheets("Depot").Cells(59, 13).Value
summe1 = Sheets("Depot").Cells(61, 4).Value
summe2 = Sheets("Depot").Cells(60, 4).Value
summe3 = Sheets("Depot").Cells(59, 4).Value
summe4 = Sheets("Depot").Cells(59, 3).Value
'Datum in DB Einfügen
Cells(lastDBz + 1, 1).Value = DepotDatum
' % GuV in DB Einfügen
Cells(lastDBz + 1, 2).Value = summe1 * 100
Cells(lastDBz + 1, 2).NumberFormat = "#,##0.00"
' € GuV in DB Einfügen
Cells(lastDBz + 1, 3).Value = summe2
Cells(lastDBz + 1, 3).NumberFormat = "#,##0.00"
' Depotert in DB Einfügen
Cells(lastDBz + 1, 4).Value = summe3
Cells(lastDBz + 1, 4).NumberFormat = "#,##0.00"
' Cash in DB Einfügen
Cells(lastDBz + 1, 5).Value = summe4
Cells(lastDBz + 1, 5).NumberFormat = "#,##0.00"
' Vermögen aus Cash + Depotert berechnen
Cells(lastDBz + 1, 6).FormulaR1C1 = "=RC[-1]+RC[-2]"
End If
End Sub
Kicktenan
22.05.2007, 22:26
Das Chart-Makro war dank Google garnicht so schwer.
Die Tabelle ``DB´´ muss vorhanden sein und eine neue Tabelle Namens ``GuV´´ muss erstellt werden (oder die Namen im Code angepasst werden), damit es funktioniert. Der Code sollte ins VBA der Tabelle ``GuV´´. Leider geht es bisher nicht über einen CommandButton zu starten, aber über ``Alt + F8´´. Der Chart stellt die GuV in € dar, es kann aber auf alle beliebigen Daten abgeändert werden. Ein Problem könnte es werden, wenn die Daten mal zu viele sind. Entweder könnte man dann mit einer Schleife nur jede fünfte Zeile von der Tabelle DB in die Tabelle GuV auslesen, oder man könnte den Einstiegspunkt der Range nachziehen, - entweder manuell, der per ``Anfang der Range = letzte Zeile – x.
Sub GuV_Chart()
Dim lastDBz As Long
With Sheets("DB").Activate
' Letzte Zelle in DB finden
lastDBz = Sheets("DB").Cells(Rows.Count, 1).End(xlUp).Row
'Daten von DB nach GuV Kopieren
Range("A2" & ":" & "$A$" & lastDBz).Select
Selection.Copy
Sheets("GUV").Activate
Range("A1").Select
ActiveSheet.Paste
Sheets("DB").Activate
Range("C2" & ":" & "$C$" & lastDBz).Select
Selection.Copy
Sheets("GUV").Activate
Range("B1").Select
ActiveSheet.Paste
End With
'Alten Chart löschen
Sheets("GUV").ChartObjects.Delete
' neuen Chart erstellen
Dim wksData As Worksheet
Dim rngData As Range
Dim nRowsCnt As Long
Dim nColsCnt As Integer
Dim objChart As Chart
Dim objChartObj As ChartObject
Set wksData = ThisWorkbook.Worksheets("GuV")
' Range für Chart finden
With wksData
nRowsCnt = .Cells(.Rows.Count, 1).End(xlUp).Row
nColsCnt = .Cells(1, .Columns.Count).End(xlToLeft).Column
Set rngData = .Range(.Cells(1, 1), .Cells(nRowsCnt, nColsCnt))
End With
Application.ScreenUpdating = False
Set wksData = ThisWorkbook.Worksheets("GuV")
' Chart Typ festlegen
Set objChart = Application.Charts.Add
With objChart
.ChartType = xlLineMarkers
.SetSourceData Source:=rngData, PlotBy:=xlColumns
.HasTitle = True
.ChartTitle.Text = "GuV €"
.Location Where:=xlLocationAsObject, Name:=wksData.Name
End With
Set objChartObj = wksData.ChartObjects( _
wksData.ChartObjects.Count)
' Grösse und Position bestimmen
With objChartObj
.Left = 10
.Top = 20
.Width = 1000
.Height = 600
End With
End Sub
Kicktenan
23.05.2007, 15:29
Nachtrag zu #102 (Chartmakro)
Das Makro muss nun doch in ein Modul eingefügt werden, in der Tabelle kommt es zu Fehlermeldungen.
Der Code untern löscht erst den alten Datenbestand des Charts, da es sonst zu Problemen kommt, wenn man die Datenmenge später reduziert.
Public Sub GuV_Chart2()
Dim lastDBz As Long
Dim ClRange As Object
' Alte Daten aus GuV löschen
With Sheets("GUV").Activate
Set ClRange = Sheets("GUV").Range("A:B")
ClRange.Select
Selection.ClearContents
End With
' Letzte Zelle in DB finden
With Sheets("DB").Activate
lastDBz = Sheets("DB").Cells(Rows.Count, 1).End(xlUp).Row
Range("A2" & ":" & "$A$" & lastDBz).Select
Selection.Copy
Sheets("GUV").Activate
Range("A1").Select
ActiveSheet.Paste
Sheets("DB").Activate
Range("C2" & ":" & "$C$" & lastDBz).Select
Selection.Copy
Sheets("GUV").Activate
Range("B1").Select
ActiveSheet.Paste
End With
'Alten Chart löschen
Sheets("GUV").ChartObjects.Delete
Dim wksData As Worksheet
Dim rngData As Range
Dim nRowsCnt As Long
Dim nColsCnt As Integer
Dim objChart As Chart
Dim objChartObj As ChartObject
Set wksData = ThisWorkbook.Worksheets("GuV")
With wksData
nRowsCnt = .Cells(.Rows.Count, 1).End(xlUp).Row
nColsCnt = .Cells(1, .Columns.Count).End(xlToLeft).Column
Set rngData = .Range(.Cells(1, 1), .Cells(nRowsCnt, nColsCnt))
End With
Application.ScreenUpdating = False
Set wksData = ThisWorkbook.Worksheets("GuV")
Set objChart = Application.Charts.Add
With objChart
.ChartType = xlLineMarkers
.SetSourceData Source:=rngData, PlotBy:=xlColumns
.HasTitle = True
.ChartTitle.Text = "GuV €"
.Location Where:=xlLocationAsObject, Name:=wksData.Name
End With
Set objChartObj = wksData.ChartObjects( _
wksData.ChartObjects.Count)
With objChartObj
.Left = 10
.Top = 20
.Width = 1000
.Height = 600
End With
End Sub
Kicktenan
23.05.2007, 15:40
Zur pflege des Cashbestandes habe ich nun zwei Makros geschrieben.
Eines das Verkäufe aus dem Orderbuch zum Cash in Zelle c 59 hinzufügt und eines das Käufe vom Cash abzieht. Wichtig ist der der jeweilige Betrag in der entsprechenden Tabelle markiert wird (wegen selection = im VBA)
Der Code sollte einfach unten im VBA der Tabelle ``Depot´´ hinzugefügt werden.
Sub cash_out()
Dim cahbestandALT As Integer
Dim cahbestandNEU As Integer
Dim Investment As Integer
SheetFreigeben
cahbestandALT = Cells(59, 3).Value
'Investment = die Zelle mit dem Batrag im ``Depot´´ anklicken!
'... dann erst das Makro starten
Investment = Selection.Value
cahbestandNEU = cahbestandALT - Investment
Cells(59, 3).Value = cahbestandNEU
SheetSchuetzen
End Sub
Sub cash_in()
Dim cahbestandALT As Integer
Dim cahbestandNEU As Integer
Dim Aktuell As Integer
'Aktuell = die Zelle mit dem Batrag (Aktuell) im ``Orderbuch´´ anklicken!
'... dann erst das Makro starten
Aktuell = Selection.Value
Sheets("Depot").Activate
SheetFreigeben
cahbestandALT = Sheets("Depot").Cells(59, 3).Value
cahbestandNEU = cahbestandALT + Aktuell
Cells(59, 3).Value = cahbestandNEU
SheetSchuetzen
End Sub
Kicktenan
23.05.2007, 23:16
Zum Chartmakro aus #103
Wenn das Chartmakro in einem Modul gespeichert wird und das Makro für die Datenbank aus #101 (irgendwie variiert aber die Nummer ``#´´ der Topics hier scheinbar mit der Zeit) verwendet wird, dann kann man es mit einem CommandButton starten.
Der Code zum Aufruf des Chartmakros über den CommandButton102, muss aber im VBA der Tabelle mit dem CommandButton102 gespeichert werden.
Bei mir funktioniert dies nun in der Tabelle ``DB´´, wo auch der CommandButton101 zum Sammeln der Kennzahlen funktioniert.
Private Sub CommandButton102_Click()
Run "GuV_Chart2"
End Sub
Kicktenan
24.05.2007, 20:53
Heute noch eine Erweiterung um einen Chart für das ``Vermögen´´ (Cash + Depotbestand).
Das zusammenzählen von Cash + Depotbestand hat per Formel im Chart nicht funktioniert, drum hab ich es etwas geändert.
Code für das Modul
Public Sub GuV_Chart2()
'Tabelle Namens ``GuV´´ in Excel erforderlich - Code in ein Modul
Dim lastDBz As Long
Dim ClRange As Object
' Alte Daten aus GuV löschen
With Sheets("GUV").Activate
Set ClRange = Sheets("GUV").Range("A:B")
ClRange.Select
Selection.ClearContents
End With
' Letzte Zelle in DB finden
With Sheets("DB").Activate
lastDBz = Sheets("DB").Cells(Rows.Count, 1).End(xlUp).Row
Range("A2" & ":" & "$A$" & lastDBz).Select
Selection.Copy
Sheets("GUV").Activate
Range("A1").Select
ActiveSheet.Paste
Sheets("DB").Activate
Range("C2" & ":" & "$C$" & lastDBz).Select
Selection.Copy
Sheets("GUV").Activate
Range("B1").Select
ActiveSheet.Paste
End With
'Alten Chart löschen
Sheets("GUV").ChartObjects.Delete
Dim wksData As Worksheet
Dim rngData As Range
Dim nRowsCnt As Long
Dim nColsCnt As Integer
Dim objChart As Chart
Dim objChartObj As ChartObject
Set wksData = ThisWorkbook.Worksheets("GuV")
With wksData
nRowsCnt = .Cells(.Rows.Count, 1).End(xlUp).Row
nColsCnt = .Cells(1, .Columns.Count).End(xlToLeft).Column
Set rngData = .Range(.Cells(1, 1), .Cells(nRowsCnt, nColsCnt))
End With
Application.ScreenUpdating = False
Set wksData = ThisWorkbook.Worksheets("GuV")
Set objChart = Application.Charts.Add
With objChart
.ChartType = xlLineMarkers
.SetSourceData Source:=rngData, PlotBy:=xlColumns
.HasTitle = True
.ChartTitle.Text = "GuV €"
.Location Where:=xlLocationAsObject, Name:=wksData.Name
End With
Set objChartObj = wksData.ChartObjects( _
wksData.ChartObjects.Count)
With objChartObj
.Left = 10
.Top = 20
.Width = 1000
.Height = 600
End With
End Sub
Public Sub Verm_Chart2()
'Tabelle Namens ``Verm´´ in Excel erforderlich - Code in ein Modul
Dim vlastDBz As Long
Dim vClRange As Object
' Alte Daten aus GuV löschen
With Sheets("Verm").Activate
Set vClRange = Sheets("Verm").Range("A:B")
vClRange.Select
Selection.ClearContents
End With
' Letzte Zelle in DB finden
With Sheets("DB").Activ