VBA-Makro nach StarBasic

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Dorus
Beiträge: 3
Registriert: Fr, 21.09.2018 18:46

VBA-Makro nach StarBasic

Beitrag von Dorus »

Hallo zusammen,
ich habe das Problem, dass mein VBA-Makro in OpenOffice nicht verwendbar ist. Ich möchte gern Tabellen von Webseiten einlesen und ins Clipboard kopieren, hier ein Beispiel: :-P


Sub Neu()

Const prefix As String = "https://de.wikipedia.org/wiki/"
Const FileName As String = "Brasilianische_Fu%C3%9Fballnationalmannschaft"
Dim qt As QueryTable
Dim ws As Worksheet
Set ws = ActiveSheet
Set shFirstQtr = Workbooks(1).Worksheets(1)
Set qt = ws.QueryTables.Add( _
Connection:="URL;" & prefix & FileName, _
Destination:=shFirstQtr.Cells(1, 1))
qt.WebSelectionType = xlAllTables
qt.Refresh BackgroundQuery:=False
Range("A125").Copy

End Sub

StarBasic scheint u.a. mit dem QueryTable nicht zurechtzukommen. Kann es mir bitte jemand übersetzen? (VBA-Support einschalten sowie ad-hoc-Übersetzungen über irgendwelche Eingabemasken hat keine brauchbaren Ergebnisse gebracht).

Vielen Dank!
Dorus
Beiträge: 3
Registriert: Fr, 21.09.2018 18:46

Re: VBA-Makro nach StarBasic

Beitrag von Dorus »

Hallo, danke für die Antwort. Ich habe mich weiter umgesehen und habe jedenfalls einen Ansatz gefunden, der aber mein Problem noch nicht löst:

Ich habe jetzt ein Sub, das Webseiten-Inhalte in ein Writer-Fenster kopiert und zum Clipboard hinzufügt. Da ich an dem Writer-Fenster nicht interessiert bin, habe ich rumprobiert, wie man diese Writer-Ausgabe verhindern kann, was mir aber nicht gelungen ist (unten auskommentiert). Ich stelle außerdem leider fest, dass der Erfolg dieses Codes von der Url abhängt. Mit der unten eingesetzten Url geht es ganz gut. Dagegen öffnet sich bei

https://de.wikipedia.org/wiki/Charles_Aznavour

zwar der Writer mit Webseiten-Inhalt, aber er wird nicht automatisch kopiert.

Und wenn ich

http://www.oddsportal.com/soccer/austri ... undesliga/

einsetze (woran mir am meisten liegen würde), kriege ich einen Basic-Laufzeitfehler.


Wer kann mir bitte weiterhelfen, und mir erklären, warum es mit mancher Url geht, mit einer anderen nicht?


Sub LoadWebsite()

Dim Out As Object
Dim Url As String
Dim Props(0) As New com.sun.star.beans.PropertyValue
Dim Dummy()

Props(0).Name="Hidden" : Props(0).Value=True

Url = "http://www.bbc.co.uk/news/"

'Out = StarDesktop.loadComponentFromURL(Url, "_blank", 0, Props())
Out = StarDesktop.loadComponentFromURL(Url, "_blank", 0, Dummy())

CopyToClipboard(Out)

End Sub

sub CopyToClipboard(Document as object)
Dim dispatcher as object
docframe = Document.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(docframe, ".uno:SelectAll", "", 0, Array())
dispatcher.executeDispatch(docframe, ".uno:Copy", "", 0, Array())
end sub
Zuletzt geändert von Dorus am Mi, 03.10.2018 13:19, insgesamt 1-mal geändert.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: VBA-Makro nach StarBasic

Beitrag von Stephan »

Wer kann mir bitte weiterhelfen, und mir erklären, warum es mit mancher Url geht, mit einer anderen nicht?
Weil OpenOffice die eine URL lädt und danach "Out" Inhalt hat und die andere URL nicht lädt und "Out" keine Inhalt hat und in Folge "Document" keinen Inhalt hat.
Das die eine URL nicht geladen wird lässt sich prüfen indem man versucht sie direkt zu laden. Zieht man eine ältere Programmversion zur Hilfe (bei mir OOo 3.3.0) zeigt sich das dieses Problem anscheinend daher rührt das ein Zertifikat nicht akzeptiert wird:
zertifikatsproblem.gif
zertifikatsproblem.gif (14.49 KiB) 4592 mal betrachtet

Gruß
Stephan
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: VBA-Makro nach StarBasic

Beitrag von Stephan »

Gibt es da irgendwelche Einstellungen, die einem den Zugriff auf die Webseiten-Inhalte erlauben?
nichts wovon ich wüsste, vielleicht ist das ein Fehler in AOO 4.1.5, der das bewirkt, denn mit 3.3.0 ist die Webseite ja manuell zu laden.


GRuß
Stephan
Dorus
Beiträge: 3
Registriert: Fr, 21.09.2018 18:46

Re: VBA-Makro nach StarBasic

Beitrag von Dorus »

Ich habe gerade gemerkt, dass es mit Libre Office geht. Leider sehe ich nur einen Auszug aus der Webseite, der demjenigen Teil zu entsprechen scheint, den man auch als HTML-Code direkt einsehen kann. Ich fürchte, dass die "variablen" Inhalte so nicht abgegriffen werden können.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: VBA-Makro nach StarBasic

Beitrag von Stephan »

nur am Rande:
ich verstehe nicht so recht wohin sich der Thread entwickelt hat. Ursprünglich ging es um ein VBA zu (augenscheinlich) MS Excel und gelandet sind wir bei Problemen des Imports in OO Writer.
Beide genannten Webseiten sind jedoch in OO Calc mit Hilfe von Einfügen-Verknüpfung zu externen Daten oder Einfügen-Tabelle aus Datei einfügbar.


Gruß
Stephan
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: VBA-Makro nach StarBasic

Beitrag von balu »

Hallo Dorus,

Excel und VBA sind nicht meine Welt. Aber im groben weiss ich, das man bei Excel andere möglichkeiten hat Inhalte aus einer Webseite auszulesen und das ohne VBA.

Ich werde jetzt aber auch nicht wirklich schlau was Du wirklich möchtest. Einerseits wolltest Du ein VBA-Makro in OpenOffice ans laufen bekommen, und anderseits willst Du nun über dem Writer eine Webseite auslesen und den Inhalt in die Zwischenablage bekommen.
- Warum in die Zwischenablage?
- Was willst Du anschließend mit dem Inhalt der Zwischenablage anstellen?

Wer kann mir bitte weiterhelfen, und mir erklären, warum es mit mancher Url geht, mit einer anderen nicht?
Weiterhelfen kann ich so auch erstmal nicht.
Nicht jede Webseite ist gleich aufgebaut. Es gibt keinen internationalen Standard wie eine Webseite aufgebaut sein muss, damit man dort bestimmte Daten auf einfachste Art und Weise mittels eines Programmes wie z.B. OpenOffice auslesen kann.

Aus eigener Erfahrung weiss ich aber auch, das es Webseiten gibt die man NICHT mit StarBasic auslesen kann. Da hat man einfach keine Chance.

Es gibt also kein Patentrezept, oder anders gesagt kein *Universal Makro* das für jede Webseite funktioniert.
Du musst schon ganz genau sagen aus welcher Webseite Du welche Daten herausziehen willst, und wo Du die Daten weiterverarbeiten möchtest. Erst dann kann dir vielleicht weiter geholfen werden.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Antworten