Makro zum Tabellenfüllen

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

Moderator: Moderatoren

Mr.Ioes
******
Beiträge: 524
Registriert: Fr, 12.03.2004 10:02

Makro zum Tabellenfüllen

Beitrag von Mr.Ioes »

Hallo,

kann mir jemand erklären, wie man eine Prozedur schreibt mit der man den Inhalt bestimmter, gleich positinierter Zellen verschiedener hintereinanderliegender Tabellen einer Calc-Datei zeilenweise in bestimmte Zellen einer weiteren Tabelle derselben Datei schreiben kann?

Beispiel:

Den Inhalt der Zellen mit der Position A1 und F4 der Tabellen "Nr.01" bis "Nr.09" sollen für jede Tabelle in eine Zeile der Spalten B und C geschrieben werden, und zwar beginnend mit der 3 Zeile.

@Stephan
Es geht wieder um mein "Serienbriefproblem". Ich will die Rechnenergebnisse jeder Einzelabrechnungstabelle samt Individualisierungsangaben wieder in ein eine übersichtliche Tabelle schreiben.

Gruß und Dank vorab - Mr.Ioes
herbk
**
Beiträge: 36
Registriert: Fr, 16.01.2004 14:29
Kontaktdaten:

Beitrag von herbk »

Lies Dich mal durch die Antworten auf verschiedene Fragen von mir, da ist das schon mal erklärt.
Du kannst Dir auch mal das Buchhaltungs Plug in von mir Downloaden
( http://www.der-linuxladen.de/linuxladen ... k-fakt.zip )
da ist das gleiche Prob schon gelöst und Du kannst dir die entsprechenden Makros kopieren und anpassen.
HerbK
Mr.Ioes
******
Beiträge: 524
Registriert: Fr, 12.03.2004 10:02

Beitrag von Mr.Ioes »

Hallo herbk,

leider finde ich weder passende Beiträge von Dir hier im Forum (zumindest nach den Überschriften) noch bin ich bislang dazu gekommen, in dem von Dir angegebenen "Dingsbums" (ich komm´ grad nicht darauf wie man das nennt, was ich mir runtergeladen habe) in Ruhe die Inatallationsanleitung zu lesen oder in den entpackten Dokumenten nach dem passenden Makro zu suchen. Also das scheint alles sehr interessant zu sein und ich werde mir das wohl spätestens am nächsten Wochenende mal genauer anschauen, doch komme ich im Moment aufgrund meiner anderen Aufgaben einfach nicht weiter.

Es wäre nett, wenn Du (oder ein Anderer) mir den Link zu einem passenden Beitrag, bzw. einem passenden Makro posten könntest (könnte). Vor allem brauche ich mal ein Beispiel, wie Tabellen statt Zeilen schrittweise angesprochen werden.

Nochmal Danke!

Gruß - Mr.Ioes
Charly
*****
Beiträge: 450
Registriert: Di, 20.01.2004 13:14
Wohnort: München

Beitrag von Charly »

Hallo!

Ich habe mal über dein Problem nachgedacht und einen Code geschrieben. Ich habe allerdings vorausgesetzt, daß die Tabelle, in der die Daten zusammengefasst werden sollen, an erster Stelle steht mit Index 0 und anschließend die übrigen Tabellen mit Index 1 – 9. Ist die Voraussetzung anders müsste der Code angepasst werden.

Code: Alles auswählen

Sub TabelleKomprimieren()

Doc = ThisComponent

HauptBlatt = Doc.sheets(0)

For I = 1 to 9
	Blatt = Doc.sheets(i)
	Zelle = Blatt.getCellRangeByName("A1")
	Wert = Zelle.string
	Ziel = Hauptblatt.getCellbyPosition(1,I+1)
	Ziel.string = Wert
	
	Zelle = Blatt.getCellRangeByName("F4")
	Wert = Zelle.string
	Ziel = Hauptblatt.getCellbyPosition(2,I+1)
	Ziel.string = Wert
next I	
	
	
End Sub
Gruß
Charly
TenBaseT
****
Beiträge: 128
Registriert: Mo, 08.03.2004 10:01

Beitrag von TenBaseT »

*** Staun ***

das ist ja auch nicht schwierige als bei den teuren Programmen der Scriptkiddies. :mrgreen:

Wenn ich etwas nicht weiß, dann schmeiße ich die Makroaufzeichnung an, mache einige wenige Zellen und sehe mir dann an, was generiert wurde. Bisher gabe ich da (noch) nie so richtig durchgeblickt, während dein Beispiel mir von vornherein einleuchtet. :roll:

THX
Hans
Mr.Ioes
******
Beiträge: 524
Registriert: Fr, 12.03.2004 10:02

Beitrag von Mr.Ioes »

Vielen Dank Charly,

ich hab´s tatsächlich hingekriegt. Der funktionierende Code sieht bei mir (an die konkrete Aufgabe angepasst) jetzt so aus:

Code: Alles auswählen

Sub BK_Saldenliste()
myDoc = ThisComponent
HauptBlatt = myDoc.sheets(myDoc.Sheets.count-1)

For I = 4 to 24
   Blatt = myDoc.sheets(i)
   Zelle = Blatt.getCellRangeByName("C4")
   Wert = Zelle.string
   Ziel = Hauptblatt.getCellbyPosition(0,I-1)
   Ziel.string = Wert
   
   Zelle = Blatt.getCellRangeByName("B5")
   Wert = Zelle.string
   Ziel = Hauptblatt.getCellbyPosition(1,I-1)
   Ziel.string = Wert
   
   Zelle = Blatt.getCellRangeByName("F11")
   Wert = Zelle.string
   Ziel = Hauptblatt.getCellbyPosition(2,I-1)
   Ziel.string = Wert
   
next I
   
End Sub 
Und das nächste mal probiere ich auch endlich mal den Macrorecorder aus. Versprochen. :oops:

Gruß - Mr.Ioes
herbk
**
Beiträge: 36
Registriert: Fr, 16.01.2004 14:29
Kontaktdaten:

Beitrag von herbk »

Der Makrorecorder ist nicht so das gelbe vom Ei... besonders dann nicht wenn man aus dem Aufgezeichneten was lernen möchte...
:wink:
HerbK
Antworten