Seite 1 von 1

Re: Zusammenfassen von Tabellen bei dynamischer Tabellenanzahl

Verfasst: Fr, 18.01.2008 18:49
von komma4
auch wenn's das falsche Forum ist....

das war einfach (ich weiss bloss nicht, warum der Code immer bei SheetChange aufgerufen wurde.... nach jeder Datenänderung reicht doch???)

Code: Alles auswählen

Private TabellenAnzahl As Integer
Private oSheets
Private oErstesBlatt

Sub sum2Tabelle1

oSheets =  ThisComponent.Sheets
oErstesBlatt = oSheets.getByIndex( 0 )
TabellenAnzahl = oSheets.Count


call Tabellen_Summierung( 10, 6 )
call Tabellen_Summierung( 11, 6 )
call Tabellen_Summierung( 12, 6 )
call Tabellen_Summierung( 13, 6 )
call Tabellen_Summierung( 14, 6 )
call Tabellen_Summierung( 15, 6 )
call Tabellen_Summierung( 16, 6 )
call Tabellen_Summierung( 17, 6 )
call Tabellen_Summierung( 21, 6 )
call Tabellen_Summierung( 22, 6 )
call Tabellen_Summierung( 23, 6 )
call Tabellen_Summierung( 24, 6 )
call Tabellen_Summierung( 25, 6 )
call Tabellen_Summierung( 26, 6 )
call Tabellen_Summierung( 28, 6 )
call Tabellen_Summierung( 29, 6 )
call Tabellen_Summierung( 30, 6 )
call Tabellen_Summierung( 31, 6 )
call Tabellen_Summierung( 33, 6 )  

call Tabellen_Summierung( 10, 8 )
call Tabellen_Summierung( 11, 8 )
call Tabellen_Summierung( 12, 8 )
call Tabellen_Summierung( 13, 8 )
call Tabellen_Summierung( 14, 8 )
call Tabellen_Summierung( 15, 8 )
call Tabellen_Summierung( 16, 8 )
call Tabellen_Summierung( 17, 8 )
call Tabellen_Summierung( 21, 8 )
call Tabellen_Summierung( 22, 8 )
call Tabellen_Summierung( 23, 8 )
call Tabellen_Summierung( 24, 8 )
call Tabellen_Summierung( 25, 8 )
call Tabellen_Summierung( 26, 8 )
call Tabellen_Summierung( 28, 8 )
call Tabellen_Summierung( 29, 8 )
call Tabellen_Summierung( 30, 8 )
call Tabellen_Summierung( 31, 8 )
call Tabellen_Summierung( 33, 8 ) 

call Tabellen_Summierung( 10, 10 )
call Tabellen_Summierung( 11, 10 )
call Tabellen_Summierung( 12, 10 )
call Tabellen_Summierung( 13, 10 )
call Tabellen_Summierung( 14, 10 )
call Tabellen_Summierung( 15, 10 )
call Tabellen_Summierung( 16, 10 )
call Tabellen_Summierung( 21, 10 )
call Tabellen_Summierung( 22, 10 )
call Tabellen_Summierung( 23, 10 )
call Tabellen_Summierung( 24, 10 )
call Tabellen_Summierung( 25, 10 )
call Tabellen_Summierung( 26, 10 )
call Tabellen_Summierung( 28, 10 )
call Tabellen_Summierung( 29, 10 )
call Tabellen_Summierung( 30, 10 )
call Tabellen_Summierung( 31, 10 )
call Tabellen_Summierung( 33, 10 )

End Sub


Private Sub Tabellen_Summierung(ByVal z As Integer, ByVal s As Integer)
Dim Laufindex As Integer
Dim Summe As Double

' anderer Index ! 
For Laufindex = 1 To TabellenAnzahl – 1
' OOo: spalte, zeile 
  Summe = Summe + oSheets.getByIndex( Laufindex ).getCellByPosition( s, z ).Value
Next

oErstesBlatt.getCellByPosition( s, z ).setValue( Summe )
End Sub


Die Testdaten hat der OP - der darf dann auch testen!

Re: Zusammenfassen von Tabellen bei dynamischer Tabellenanzahl

Verfasst: Fr, 18.01.2008 21:42
von AFritz
Hallo,

zuersteinmal vielen vielen Dank für die Hilfe (nach 2 Tagen und 2 Büchern hät ich das vielleicht früher mal hier einstellen sollen) und eine Entschuldigung für das falsche Forum, ich dachte bei Calc wäre ich richtig und dazu hab ich das Macrooo leider übersehen. Bisher bin ich (noch) ohne Makros ausgekommen....

Problem an dem Dokument ist, das hier dynamisch neue Tabellenblätter hinzukommen. Ich hab auch schon mit "konsolodieren" experimentiert. Ein tolle Funktion, nur leider nich DAU tauglich...

Den Code hab ich auch gleich getestet, leider bleibt BASIC hängen (2.3.1) und bringt die Meldung " BASIC Syntaxfehler Erwartet "CLRF". Markiert wird dabei diese Zeile

Code: Alles auswählen

For Laufindex = 1 To TabellenAnzahl – 1
, genauer bei dem Minuszeichen.

Vielen Dank nochmals für die tolle Unterstützung!

Gruß Alex

Re: Zusammenfassen von Tabellen bei dynamischer Tabellenanzahl

Verfasst: Fr, 18.01.2008 23:04
von Karolus
Hallo

Nimm stattdessen:

Code: Alles auswählen

For Laufindex = 1 To (TabellenAnzahl – 1)
Gruß Karo

Re: Zusammenfassen von Tabellen bei dynamischer Tabellenanzahl

Verfasst: Sa, 19.01.2008 10:46
von AFritz
Hallo Karo,

danke für den Tip, leider kommt mit der Klammer dann "Fehler in Klammernschachtelung".... irgendwie komm ich mit Makros nicht wirklich zu Rande... da ist doch Batchprogrammierung viel schöner... ;-).

Gruß
Alex

Re: Zusammenfassen von Tabellen bei dynamischer Tabellenanzahl

Verfasst: Sa, 19.01.2008 11:10
von Karolus
Hallo

Code: Alles auswählen

For Laufindex = 1 To TabellenAnzahl –1
Das Zeichen hinter 'TabellenAnzahl' ↑ ist offenbar kein -minusZeichen, tausch es gegen minus oder Bindestrich aus.

Gruß Karo

Re: Zusammenfassen von Tabellen bei dynamischer Tabellenanzahl

Verfasst: Sa, 19.01.2008 12:02
von komma4
AFritz hat geschrieben:da ist doch Batchprogrammierung viel schöner... ;-).
Ähm - BASIC ist Batchprogrammierung....

...oder meinst Du "Grossrechner" (=>bist Du Dinosaurier)?

Re: Zusammenfassen von Tabellen bei dynamischer Tabellenanzahl

Verfasst: Sa, 19.01.2008 13:18
von AFritz
Hallo,

@Karolus: Vielen Dank! Es lage echt daran das es kein "richtiges" Minuszeichen war. Jetzt läuft das Skript. Muss nur noch die Tabellen Felder um zuordnen, da anscheinend MS bei 1 anfängt zu zählen und OpenOffice bei 0.

@komma4: Großrechner nicht... aber wahrscheinlich auch nur rudimentärer "Batchbastler". Muss mich da echt noch mehr reinvertiefen... bisher bin ich froh das meine Skripte bei der Anmeldung das tun, was ich mir (so ungefähr) gewünscht habe... z.B. OpenOffice silent installieren.

@Alle: Diese Forum ist echt toll. Hätte nicht gedacht das mir so schnell geholfen werden wird!!!!!

Danke nochmals!

Gruß
Alex

Re: Zusammenfassen von Tabellen bei dynamischer Tabellenanzahl

Verfasst: Sa, 19.01.2008 13:46
von komma4
AFritz hat geschrieben:Muss nur noch die Tabellen Felder um zuordnen, da anscheinend MS bei 1 anfängt zu zählen und OpenOffice bei 0.
Umordnen nicht nötig: ändere einfach die Werte bei den einzelnen Aufrufen [call Tabellen_Summierung]
(Du meinst: Zeilen/Spaltenangaben?)

Re: Zusammenfassen von Tabellen bei dynamischer Tabellenanzahl

Verfasst: Sa, 19.01.2008 14:10
von AFritz
Hallo Winfried,

das hab ich eigentlich sagen wollen. Das sich Programme doch manchmal so unterscheiden müssen... ;-)

Gruß
Alex