Makro - Tabellenblätter

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

Moderator: Moderatoren

mike6
*****
Beiträge: 479
Registriert: Sa, 06.03.2004 13:58

Makro - Tabellenblätter

Beitrag von mike6 »

Hallo,

mein Makro soll nacheinander die Tabellenblätter
aufrufen und alle Tabellenblätter auf Zelle "E17" stellen.
Da sich die Namen und die Anzahl der Tabellenblätter aber immer
ändern, suche ich den dazugehörigen Befehl in Basic.

Wenn ich das Makro aufzeichne erscheint immer
Tabellenblatt1, Tabellenblatt 2 ..... .


MfG
mike6
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Mike6,

auch wenn ich deine Frage nicht verstehen (was verstehst du unter ...nacheinander aufrufen und auf E17 stellen?) kannst du die Tabellenblätter auch über ihren Index ansprechen - statt mit dem Namen. Das erte Blatt hat die Nummer (index) Null das zweite 1 und so weiter. Über eine schleife mit Prüfung, ob es das Baltt überhaupt gibt, erreichst du alle.

Den Rest versteh ich nicht.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
mike6
*****
Beiträge: 479
Registriert: Sa, 06.03.2004 13:58

Taybellenblätter ansteuern

Beitrag von mike6 »

Hallo,

ich habe 17 Tabellenblätter. Auf all diesen Tabellenblättern
ist in der Zelle E17 eine Eingabe zu tätigen.

Damit ich nicht alle Tabellenblätter nacheinander öffnen
muss und mit der Maus in E 17 klicken muss möchte ich dies
über ein Makro steuern.

Das alles mit dem Makrorecorder aufzuzeichnen ist nicht
die Schwierigkeit, sondern die Ansteuerung der einezelnen
Tabellenblätter, die nicht immer den gleichen Namen haben müssen.

In der Datei xyz heissen Sie Tabelle 1, Tabelle2 ....
In der Datei btz heisen Sie A1, A2 ....


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

Beitrag von Stephan »

Ein solches Makro erledigt das:

Code: Alles auswählen

Sub eintragen
myDoc = stardesktop.currentcomponent
'einzutragender Wert
eingabe = 123
Anzahl = myDoc.Sheets.count
'in allen Blättern eintragen
For i=0 to Anzahl-1
	blatt = myDoc.Sheets(i)
	'in Zelle E17 eintragen
	zelle = blatt.getCellByPosition(4,16)
	zelle.Value = 123
Next i
end sub

Gruß
Stephan
mike6
*****
Beiträge: 479
Registriert: Sa, 06.03.2004 13:58

Danke

Beitrag von mike6 »

Hallo,

vielen Dank für die schnelle Antwort.

Mfg
mike6
Antworten