von Stephan » So, 09.10.2011 13:12
Wie kann man makro für Calc umschreiben?
Habe ich leider keine Ahnung obwohl das eine triviale Frage ist.
Möglich wäre die, nicht besonders elegante, Implementierung indem man die XML-DAtei als reine Textdatei behandelt. Funktionierend (wenn auch 'handwerklich' an einigen Stellen nicht so toll, weil schnell zusammenkopiert) wäre:
Code: Alles auswählen
Sub Main
Dim waehrung(0)
Dim kurs(0)
aFile = ConvertToURL("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml")
iNumber = Freefile
Open aFile For Input As iNumber
i = 0
While not eof(iNumber)
Line Input #iNumber, sLine
Do While ASC(Left(sLine, 1)) = 9
sLine = Right(sLine, LEN(sLine)-1)
Loop
If sLine <>"" AND LEFT(TRIM(sLine), 16) = "<Cube currency='" then
x = Split(sLine, "'")
waehrung(i) = x(1)
kurs(i) = x(3)
i = i + 1
Redim Preserve waehrung(i)
Redim Preserve kurs(i)
end if
wend
Close #iNumber
With ThisComponent.CurrentController.ActiveSheet()
.getCellRangeByName("A1").String = "currency"
.getCellRangeByName("B1").String = "rate"
For i = 0 To UBOUND(kurs())-1
.getCellByPosition(0,i+1).String = waehrung(i)
.getCellByPosition(1,i+1).Value = kurs(i)
Next i
End With
End Sub
Generell besser als überhaupt über eine Seite wie
http://www.ecb.europa.eu/stats/eurofxre ... -daily.xml auf Kurse mittels Makro zuzugreifen wäre wohl die Nutzung von Online-Quellen die auf Abfrage per Makro/Script eingerichtet sind wie z.B.
http://finance.yahoo.com/.
Gruß
Stephan
[quote]Wie kann man makro für Calc umschreiben?[/quote]
Habe ich leider keine Ahnung obwohl das eine triviale Frage ist.
Möglich wäre die, nicht besonders elegante, Implementierung indem man die XML-DAtei als reine Textdatei behandelt. Funktionierend (wenn auch 'handwerklich' an einigen Stellen nicht so toll, weil schnell zusammenkopiert) wäre:
[code]Sub Main
Dim waehrung(0)
Dim kurs(0)
aFile = ConvertToURL("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml")
iNumber = Freefile
Open aFile For Input As iNumber
i = 0
While not eof(iNumber)
Line Input #iNumber, sLine
Do While ASC(Left(sLine, 1)) = 9
sLine = Right(sLine, LEN(sLine)-1)
Loop
If sLine <>"" AND LEFT(TRIM(sLine), 16) = "<Cube currency='" then
x = Split(sLine, "'")
waehrung(i) = x(1)
kurs(i) = x(3)
i = i + 1
Redim Preserve waehrung(i)
Redim Preserve kurs(i)
end if
wend
Close #iNumber
With ThisComponent.CurrentController.ActiveSheet()
.getCellRangeByName("A1").String = "currency"
.getCellRangeByName("B1").String = "rate"
For i = 0 To UBOUND(kurs())-1
.getCellByPosition(0,i+1).String = waehrung(i)
.getCellByPosition(1,i+1).Value = kurs(i)
Next i
End With
End Sub[/code]
Generell besser als überhaupt über eine Seite wie http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml auf Kurse mittels Makro zuzugreifen wäre wohl die Nutzung von Online-Quellen die auf Abfrage per Makro/Script eingerichtet sind wie z.B. http://finance.yahoo.com/.
Gruß
Stephan