Seite 1 von 1

Wie von Makro auf Tabelle zugreifen?

Verfasst: Mi 7. Nov 2012, 18:05
von K-LOFF
moin,
ich möchte gerne mal in LO was programmieren. Unter VBA habe ich es geschafft, da ich aber auf Linux umstellen möchte, wollte ich es unter LO auch mal versuchen. Klappt aber nicht so, wie ich es erhoffte.

Wie lese ich eine Zelle aus?
Wie schreibe ich da was rein?

Mit den Befehlen aus VBA meckert mich LO dauernd aus.

Gruß

Re: Wie von Makro auf Tabelle zugreifen?

Verfasst: Mi 7. Nov 2012, 18:36
von swolf
Hallo,

hat deine Frage etwas mit Base = Datenbankmodul zu tun?

In LibreOffice werden Makros geschrieben mit
Starbasic, Python, BeanShell oder Java – nicht mir VBA.

Informationen zur StarBasic Programmierung bekommst du hier:
http://de.openoffice.info/viewtopic.php ... 6a57c7a9a5

Und in der Hilfe von LO findest du im Register "Inhalte"
→ Makros und Programmierung

Re: Wie von Makro auf Tabelle zugreifen?

Verfasst: Mi 7. Nov 2012, 19:46
von K-LOFF
Ich wollte, wie unter VBA, unter LO mit dem internen Editor ganz einfach ein Makro, bzw. ein kleines Programm erstellen.
Dabei wollte ich verschiedene Zellen auslesen und in verschiedenen Zellen der Tabellen was reinschreiben.
Zwischendurch natürlich mal was berechnen, auswerten oder so.

Geht so was unter LO nicht?

Gruß

Re: Wie von Makro auf Tabelle zugreifen?

Verfasst: Mi 7. Nov 2012, 20:27
von swolf
Natürlich geht das mit Starbasic (in LibreOffice heißt es LibreBasic, ist aber das selbe.)
- VBA ist nicht aber nicht die Makrosprache von LibreOffice, wie gesagt. Ich weiß nicht, ob du dich umstellen möchtest.

Zum Beispiel Zellen auslesen:
http://www.google.de/search?hl=de&q=Zel ... tAabjYC4Cw

In die Zelle Schreiben
http://www.google.de/search?hl=de&q=Mak ... sgbn3IGIDQ


(Ich habe noch nicht verstanden, ob du Calc-Tabelle meinst
oder Datenbank (Base)-Tabelle. Wahrscheinlich das letztere, weil du im Base-Forum schreibst.)

Re: Wie von Makro auf Tabelle zugreifen?

Verfasst: Mi 7. Nov 2012, 20:28
von RobertG
Hallo K-LOFF,

du bist in der falschen Komponente von LibreOffice gelandet. Hier geht's um Datenbanken. Deine Frage zielt auf's Programmieren, vielleicht auch auf die Tabellenkalkulation Calc. Wenn Du wirklich Base meinst: Auf Tabellen greifst Du mit SQL zu, nicht mit einem Makro.

Wenn Du bestimmte Befehle suchst ist Dir vielleicht auch diese Seite eine gute Hilfe:
http://www.starbasicfaq.de/index.html

Gruß

Robert

Re: Wie von Makro auf Tabelle zugreifen?

Verfasst: Do 8. Nov 2012, 09:13
von K-LOFF
moin,

ich möchte verschiedene Zellen aus der Tabellenkalkulation, als von Calc, auslesen und wieder beschreiben.
Das kann man unter Excel mit VBA, welches man einfach mit 'Alt' + 'F11' aufruft.
Da sich unter LO auch eine IDE, bzw. ein Editor befindet, dachte ich, dieses Teil könnte ich dazu benutzen.
Zumal, wenn ich in Excel erstellten Programmcode unter LO lade, sich dieser hierunter wiederfindet.

Wie geht es denn sonst? Wo kann ich näheres dazu erfahren?

Gruß

Re: Wie von Makro auf Tabelle zugreifen?

Verfasst: Do 8. Nov 2012, 20:41
von F3K Total
Moin
K-LOFF hat geschrieben:ich möchte verschiedene Zellen aus der Tabellenkalkulation, als von Calc, auslesen und wieder beschreiben.
geht.
K-LOFF hat geschrieben:Das kann man unter Excel mit VBA, welches man einfach mit 'Alt' + 'F11' aufruft.
wurde schon beantwortet, übrigens geht auch hier Alt + F11 um in die IDE zu gelangen
swolf hat geschrieben:Natürlich geht das mit Starbasic (in LibreOffice heißt es LibreBasic, ist aber das selbe.)
K-LOFF hat geschrieben:Da sich unter LO auch eine IDE, bzw. ein Editor befindet, dachte ich, dieses Teil könnte ich dazu benutzen.
Genau.
Ein kurzes Beispiel.
Lese String aus Tabelle1 Zelle A1 aus und schreibe ihn in Zelle B1 der Tabelle2

Code: Alles auswählen

sub S_transfer_text
    osheets = thiscomponent.sheets
    oSourceSheet = osheets.getbyname("Tabelle1")
    oSourceCell = oSourceSheet.getcellbyposition(0,0)'A1
    sSourceString = oSourceCell.String 'auslesen
    oTargetSheet = osheets.getbyname("Tabelle2")
    oTargetCell = oTargetSheet.getcellbyposition(1,0)'B1
    oTargetCell.String = sSourceString 'einlesen
    ocontroller = Thiscomponent.currentcontroller
    ocontroller.ActiveSheet = oTargetSheet'Zur Zieltabelle springen
end Sub
Man kann auf die verschiedensten Eigenschaften der Tabellen/Zellen/Zellbereiche zugreifen.
Allein die Zelle A1 hat die in angehängter Text-Datei aufgelisteten Eigenschaften (kann man z.B. mit Xray analysieren)

Beispiel siehe unten.
Gruß R

Re: Wie von Makro auf Tabelle zugreifen?

Verfasst: Mi 14. Nov 2012, 10:32
von K-LOFF
@ F3K Total:

danke für das Beispiel, es klappt.
Ist nur sehr gewöhnungsbedürftig. Werde die Tage mal sehen, ob ich es auf meine Sachen zugeschnitten bekomme.
Aber dann kommen bestimmt wieder andere Probleme.

Gruss