Wie mach eich es..bitte um hilfe..
Moderator: Moderatoren
Wie mach eich es..bitte um hilfe..
Ich habe eine Tabelle wo 200 WKN NUMMERN aufgelistet sind (es geht um Aktien)..ich möchte zu den Nummern Daten (Kurs usw) von Yahoo holen.. es geht wunderbar über Einfügen->Verknüpfung zu externen Daten..dann gebe ich http://de.finance.yahoo.com/q?s=DE0008430026 und die Daten für DE0008430026 erscheinen in der Tabelle und werden auch aktualisiert …Wie mache ich es aber bei 200 Nummern , so das ich die Funktion nicht 200 mal manuell abrufen und einbinden muss…???Hat jemand eine Idee...???
grüß
artur
grüß
artur
hallo komma4
danke für deine antwort..
vorweg muss ich sagen was die makros angeht- ich weiß das es sie gibt mehr aber nicht…
Der kod von andrew funktioniert aber der liefert nicht die daten die ich brauche…
Was ich brauche steht für zb. Intel (intc) und http://www.finance.yahoo.com also http://finance.yahoo.com/q?s=intc in HTML_yfncsumtab..wo soll ich -HTML_yfncsumtab- im dem kod eintragen damit die daten angezeigt werden..habe etwas damit rumgespielt aber ohne erfolg…
hätte ich die daten mit dem kod angezeigt bekommen konnte ich weiter herumbasteln..
so sehen die daten in HTML_yfncsumtab aus:
INTEL CP (NasdaqGS:INTC) Delayed quote data
After Hours: 20.07 0.01 (0.05%)
Last Trade: 20.08.06 Day's Range: 20.08 - 20.43 New! Try our new Charts in Beta
Trade Time: Dec 22 52wk Range: 16.75 - 26.63
Change: 0.29 (1.42%) Volume: 35,355,091 1d 5d 3m 6m 1y 2y 5y max
Prev Close: 20.37 Avg Vol (3m): 62,369,600
Open: 20.35 Market Cap: 115.78B Annual Report for INTC
Bid: 19.99 x 400 P/E (ttm): 19.86
Ask: 20.18 x 4000 EPS (ttm): 01.01.06
1y Target Est: 23.78 Div & Yield: 0.40 (2.00%)
NEW Add Quotes to Your Web Site Add INTC to Portfolio Set Alert DownloadData We can no longer offer real-time ECN data due to pricing changes by the exchanges. For real-time quotes (including real-time pre/post market data), sign up for a free trial of Real-time Quotes
vorweg muss ich sagen was die makros angeht- ich weiß das es sie gibt mehr aber nicht…
Der kod von andrew funktioniert aber der liefert nicht die daten die ich brauche…
Was ich brauche steht für zb. Intel (intc) und http://www.finance.yahoo.com also http://finance.yahoo.com/q?s=intc in HTML_yfncsumtab..wo soll ich -HTML_yfncsumtab- im dem kod eintragen damit die daten angezeigt werden..habe etwas damit rumgespielt aber ohne erfolg…
hätte ich die daten mit dem kod angezeigt bekommen konnte ich weiter herumbasteln..
so sehen die daten in HTML_yfncsumtab aus:
INTEL CP (NasdaqGS:INTC) Delayed quote data
After Hours: 20.07 0.01 (0.05%)
Last Trade: 20.08.06 Day's Range: 20.08 - 20.43 New! Try our new Charts in Beta
Trade Time: Dec 22 52wk Range: 16.75 - 26.63
Change: 0.29 (1.42%) Volume: 35,355,091 1d 5d 3m 6m 1y 2y 5y max
Prev Close: 20.37 Avg Vol (3m): 62,369,600
Open: 20.35 Market Cap: 115.78B Annual Report for INTC
Bid: 19.99 x 400 P/E (ttm): 19.86
Ask: 20.18 x 4000 EPS (ttm): 01.01.06
1y Target Est: 23.78 Div & Yield: 0.40 (2.00%)
NEW Add Quotes to Your Web Site Add INTC to Portfolio Set Alert DownloadData We can no longer offer real-time ECN data due to pricing changes by the exchanges. For real-time quotes (including real-time pre/post market data), sign up for a free trial of Real-time Quotes
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: hallo komma4
Das ist schlecht ... für die Aufgabe 200 Abfragen zu automatisieren.arttur hat geschrieben:vorweg muss ich sagen was die makros angeht- ich weiß das es sie gibt mehr aber nicht…
Ich habe Andrews Beispiel auf Deinen ISP und dessen Abfragesyntax (ungleich WKN!) angepasst.
Wichtig:
Die Tabelle mit den Suchbegriffen heisst im Beispiel "Aufstellung". Es muss ein Tabellenblatt "_work" vorhanden sein.
Die Suchbegriffe stehen in Spalte B ab Zelle B2 untereinander, die Ausgabe in der nächsten Spalte. Es wird der letzte Tageskurs genommen, der sich im Treffer wohl in B19 befindet.
Habe es hier (Linux, OOo2.1, dsl*4) mit einem Dutzend DAX-Werte getestet: ca. 1 sek. pro Kurs. Der Bildschirm kann flakern - im Code fehlt praktisch jede Fehlerkontrolle oder Optimierung.
Hilft das?
Code: Alles auswählen
REM ***** BASIC *****
Option Explicit
' Original: http://www.oooforum.org/forum/viewtopic.phtml?t=22988
' Anpassung 2006-12-24 wro
' http://de.openoffice.info/posting.php?mode=quote&p=40369
Sub Main
DoTheWork()
End Sub
Sub DoTheWork(Optional oDocument)
Dim oSheet ' Sheet to use
Dim oWorkSheet ' Arbeitsblatt für Ausgabe
Dim oDoc ' Document to use
Dim sName$ ' Will hold the stock to get
Dim oCell
Dim oDisp
Dim oFrame
REM Use ThisComponent if the argument is missing
oDoc=IIF(IsMissing(oDocument), ThisComponent, oDocument)
REM Assume that we should use the first sheet.
REM Perhaps it would be safer to use the current sheet.
oSheet = oDoc.getSheets().getByName("Aufstellung")
oWorkSheet = oDoc.getSheets().getByName("_work")
REM Yes, I will get the active sheet rather than the first sheet.
' oSheet = oDoc.getCurrentController().getActiveSheet()
REM Get string value from cell B1. B = Column 1 and 1 = Row 0
' Startzeilen-Index
i = 1
' ersten Suchbegriff aus Aufstellung
sName = oSheet.getCellByPosition(1, i).getString()
Do
' Ausgabe in Arbeitsblatt vorbereiten
oCell = oWorkSheet.getCellByPosition(0, 0)
oDoc.getCurrentController().select(oCell)
REM Create a dispatch helper so that you can use the new
REM easier to sue dispatch syntax.
oDisp = createUnoService("com.sun.star.frame.DispatchHelper")
oFrame = oDoc.getCurrentController().getFrame()
InsertExternalDataSource(sName$, oFrame, oDisp)
' Ergebnis holen und hinter Suchbegriff einstellen
oSheet.getCellByPosition(2, i).setValue( _
oWorkSheet.getCellByPosition(1, 18).getValue() )
' Index der nächsten Zeile
i = i + 1
' nächsten Suchbegriff aus Aufstellung
sName = oSheet.getCellByPosition(1, i).getString()
Loop While sName <> ""
End Sub
REM sName is the string name of the stock.
REM oFrame is the frame to use for the dispatch
REM oDisp is the dispatch helper to use
Sub InsertExternalDataSource(sName$, oFrame, oDisp)
Dim oArgs(2) as new com.sun.star.beans.PropertyValue
oArgs(0).Name = "FileName"
oArgs(0).Value = "http://de.finance.yahoo.com/q?s=" & sName
oArgs(1).Name = "FilterName"
oArgs(1).Value = "calc_HTML_WebQuery"
oArgs(2).Name = "Source"
oArgs(2).Value = "HTML_tables"
oDisp.executeDispatch(oFrame , ".uno:InsertExternalDataSource", "", 0, oArgs())
End Sub
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Obwohl ich die Tabelle als Aufstellung.ods gespeichert habe bleibt er bei
oSheet = oDoc.getSheets().getByName("Aufstellung") stehen und meldet
Es ist eine Exception aufgetreten…
Type com.sun.star.container.NoSuchElementsException..
Was mache ich falsch?
Und
Kann ich hier auch Screenshoots hochladen...?
oSheet = oDoc.getSheets().getByName("Aufstellung") stehen und meldet
Es ist eine Exception aufgetreten…
Type com.sun.star.container.NoSuchElementsException..
Was mache ich falsch?
Und
Kann ich hier auch Screenshoots hochladen...?
Hi arttur
sieht so aus als wenn das Tabellenblatt "Aufstellung" nicht vorhanden ist.
komma4 hatte doch extra geschrieben:
sieht so aus als wenn das Tabellenblatt "Aufstellung" nicht vorhanden ist.
komma4 hatte doch extra geschrieben:
JürgenWichtig:
Die Tabelle mit den Suchbegriffen heisst im Beispiel "Aufstellung". Es muss ein Tabellenblatt "_work" vorhanden sein.
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
... schreibst du weiter oben, wo die ganzen "Dim" untereinander stehnarttur hat geschrieben:bin etwas weiter gekommen..
habe oSheet = oDoc.getSheets().getByName("Aufstellung") deaktiviert und
oSheet = oDoc.getCurrentController().getActiveSheet() aktiviert...danach lauft der code bis zum i=1 dann schreibt er Variable nicht definiert...
Dim i As Integer
Damit ist die Variable i (Zähler für die Schleife) als Integer ( Ganzzahl) deklariert.
Waffi
artur
Mal sehn obs dir weiterhilft:
...ganz unten/links auf deinem Arbeitsblatt siehst du div Reiter ( Tabelle1...Tabelle2 usw)
Die rechtsclicken und umbenennen in "Aufstellung" und "_work" -
Im Makro ändern/ergänzen:
Nach jedem Schleifendurchgang muß der Bereich im sheet "_work" gelöscht werden.
Bei mir klappt dies mit folgendem code, eingefügt als erster Block in der Do-Schleife
oCellRange = oWorkSheet.getCellRangeByName("A1:IU1000")
oFlags = com.sun.star.sheet.CellFlags.STRING + _
com.sun.star.sheet.CellFlags.VALUE + _
com.sun.star.sheet.CellFlags.DATETIME + _
com.sun.star.sheet.CellFlags.ANNOTATION + _
com.sun.star.sheet.CellFlags.FORMULA + _
com.sun.star.sheet.CellFlags.HARDATTR + _
com.sun.star.sheet.CellFlags.STYLES + _
com.sun.star.sheet.CellFlags.OBJECTS + _
com.sun.star.sheet.CellFlags.EDITATTR
oCellRange.clearContents(oFlags)
' Ausgabe in Arbeitsblatt vorbereiten
Außerdem mußt du noch 2 Variablen deklarieren:
Dim oCellRange
Dim oFlags
..... machst du oben bei den ganzen andern "Dim" s
.....bei mir funzt es!!
Viel spaß
PS: wollt dir n shot reinstellen, bin ich aber zu blond für...
...ganz unten/links auf deinem Arbeitsblatt siehst du div Reiter ( Tabelle1...Tabelle2 usw)
Die rechtsclicken und umbenennen in "Aufstellung" und "_work" -
Im Makro ändern/ergänzen:
Nach jedem Schleifendurchgang muß der Bereich im sheet "_work" gelöscht werden.
Bei mir klappt dies mit folgendem code, eingefügt als erster Block in der Do-Schleife
oCellRange = oWorkSheet.getCellRangeByName("A1:IU1000")
oFlags = com.sun.star.sheet.CellFlags.STRING + _
com.sun.star.sheet.CellFlags.VALUE + _
com.sun.star.sheet.CellFlags.DATETIME + _
com.sun.star.sheet.CellFlags.ANNOTATION + _
com.sun.star.sheet.CellFlags.FORMULA + _
com.sun.star.sheet.CellFlags.HARDATTR + _
com.sun.star.sheet.CellFlags.STYLES + _
com.sun.star.sheet.CellFlags.OBJECTS + _
com.sun.star.sheet.CellFlags.EDITATTR
oCellRange.clearContents(oFlags)
' Ausgabe in Arbeitsblatt vorbereiten
Außerdem mußt du noch 2 Variablen deklarieren:
Dim oCellRange
Dim oFlags
..... machst du oben bei den ganzen andern "Dim" s
.....bei mir funzt es!!
Viel spaß
PS: wollt dir n shot reinstellen, bin ich aber zu blond für...
