Wechseln des Tabellenbattes

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

Moderator: Moderatoren

hoefri55
**
Beiträge: 37
Registriert: Do, 16.09.2004 10:16
Wohnort: Meppen

Wechseln des Tabellenbattes

Beitrag von hoefri55 »

Hallo,

Tabellen ins Calc-Dokument einfügen klappt schon, aber wie wechsele ich zwischen den Blättern?

Danke, Friedhelm
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Es gibt zwei Wege um auf Arbeitsblätter zuzugreifen:
Über den Namen oder über die interne Nummer.

Über den Namen:

myDoc = thisComponent
mySheet = myDoc.Sheets().getByName("Tabelle2")

Über die interne Nummer:

myDoc = thisComponent
mySheet = myDoc.Sheets(0)

Die Zählung der Sheets beginnt bei 0.



mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
hoefri55
**
Beiträge: 37
Registriert: Do, 16.09.2004 10:16
Wohnort: Meppen

klappt auch!

Beitrag von hoefri55 »

Herzlichen Dank, das klappt einfach supi.

Aber mein nächstes Problem lauert schon.
Zur Verdeutlichung schildere ich vielleicht mal die gesamte Aufgabe.

Ich möchte eine gesamte Zeile in einem Calc-Tabellenblatt markieren, ausschneiden, in ein anderes Blatt wechseln und die Zeile dort wieder einfügen.


Friedhelm
zap
**
Beiträge: 20
Registriert: Di, 11.01.2005 13:18
Wohnort: Hannover

Beitrag von zap »

Hi Friedhelm,

das Problem ist nicht so genau definiert. Es kommt z.B. darauf an, ob du Formeln oder Ergebnisse kopieren moechtest. Das nachfolgende Makro kopiert stumpf die Daten von Zeile 11 zu Zeile 11 im naechsten Blatt. Die bisherige Zeile 11 im 2. Blatt wird nach unten verschoben, die im 1. Blatt wird geloescht.

Code: Alles auswählen

option compatible

sub zeile_ausschneiden_einfuegen
  oTabellen = ThisComponent.Sheets
  t1 = oTabellen.getByName("Sheet1") ' muss wahrscheinlich durch Tabelle1 ersetzt werden
  t2 = oTabellen.getByName("Sheet2")
  
  ' Zeile mit Index 10 auswaehlen. Das ist die 11. Zeile, da die 
  ' interne Zaehlung bei 0 beginnt
  t1_zeile = t1.Rows.getByIndex(10)
  ' Daten kopieren
  Daten = t1_zeile.getDataArray ()
  ' Zeile loeschen
  t1.Rows.removeByIndex(10, 1)
  
  ' 1 Zeile an Index 10 einfuegen
  t2.Rows().insertByIndex (10, 1)
  t2_zeile = t2.Rows.getByIndex (10)

  t2_zeile.setDataArray (Daten)
end sub
zap
hoefri55
**
Beiträge: 37
Registriert: Do, 16.09.2004 10:16
Wohnort: Meppen

Beitrag von hoefri55 »

Genau das war es, was ich brauchte.

Danke,

Friedhelm
Antworten