In Makros auf Zellen zugreifen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

petern
Beiträge: 2
Registriert: Mi, 06.07.2005 17:06
Wohnort: Frankfurt

In Makros auf Zellen zugreifen

Beitrag von petern »

Hallo,
eigentlich habe ich eine ganz banale Frage, aber irgendwie finde ich nirgends eine Antwort. In Excel habe ich diverse Makros die lesend und/oder schreibend auf Zellen zugreifen. Banales Beispiel:
cells(R,Z) = NeuerWert oder
AusTab = cells(R,Z)

Beispielsweise möchte ich in einer Schleife eine Spalte abwärts nach einem Inhalt suchen und im Trefferfall eine andere Zelle dieser Zeile verändern.

Wie müßten meine Makros denn nun aussehen, damit ich auch in Calc Zellinhalte lesen und schreiben kann ?

Danke
Peter
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Peter,
Wie müßten meine Makros denn nun aussehen, damit ich auch in Calc Zellinhalte lesen und schreiben kann ?
Wieviel Ahnung hast du denn von OOo Basic Makros? Anders gefragt, wieviel Informationen benötigst du?

Hier ein klaines Code-Schnipsel zum Schreiben und Lesen von Zellinhalten:

Code: Alles auswählen

...
oDoc = ThisComponent   'das Dokumentenobjekt
oSheet = oDoc.sheets(0)  ' das erste Tabellenblatt Objekt
oCell = oSheet.getCellRangeByName("b2")  'das Objekt der Zelle B2
Jetzt hast du das Cell-Objekt, dieses hat nun verschiedene Eigenschaften, unter anderem Inhaltseigenschaften. diese kannst du auslesen oder setzen wie du willst. Denk daran, dass die Formeln in englisch geschrieben werden müssen, oder du verwendest FormulaLocal.

Code: Alles auswählen

sText = oCell.string     'Textinhalt der Zelle
nWert = oCell.value             'Wert der Zelle - Zahlen
sFormel = oCell.formula       'Formel der Celle
oCell.string = "Hallo"            'die Zelle erhält den Text Hallo
oCell.value = 123               'die Zelle erhält den Wert 123
oCell.formula = "=sum(a1:a14)"    ' die Zelle erhält die Summenformel
Ich hoffe, es hilft erst einmal weiter.
Das Zelobjekt erhälst du übrigens auch über die Indexzahlen:

Code: Alles auswählen

oCell = oSheet.getCellByPosition(nSp, nZe)
Zellindices beginnen bei OOo immer bei 0, die Zelle a1 hat alos die Position 0,0.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
petern
Beiträge: 2
Registriert: Mi, 06.07.2005 17:06
Wohnort: Frankfurt

Beitrag von petern »

Ups, ich war ja garnicht eingeloggt und konnte trotzdem antworten :oops:

Naja, wahrscheinlich konnte man trotzdem erahnen, dass die Danksagung von mir stammte. Hatte mir riesig geholfen, jetzt klappt das soweit.

(Und wenn ich hier jetzt öfters reinschaue wird das mit dem Posten bestimmt auch noch mal was werden.)

Peter
Antworten