Na, Balu, du nimmst es ja ganz genau.
Unsere beiden Beiträge haben sich wohl zeitlich überschnitten?
Du Hast Recht, mit der kürzeren Schreibweise des Cellrange, auch mit den Klammern, die ich übernommen habe, das Berechnungsergebnis ist aber gleich!
Mir ging es in erster Linie darum, Michael bzgl. der sheets zu helfen.
Darum noch ein Hinweis für Michael:
Es gibt mehrere Methoden ein Tabellenblatt (Sheet) anzusprechen:
- doc.Sheets(0)
- doc.sheets.getbyIndex(0)
- doc.sheets.getbyName("Tabelle1")
sind die mir bekannten.
Die drei Methoden sprechen hier genau das gleiche Tabellenblatt an, das erste von links, weil das erste Blatt den Index 0 und den Namen "Tabelle1" hat.
Das zweite Tabellenblatt in der Datei von Michael wäre:
- doc.Sheets(1)
- doc.sheets.getbyIndex(1)
- doc.sheets.getbyName("Tabelle2")
Also ist "doc.Sheets(3)" hier gleichwertig mit "doc.sheets.getbyname("Auswertung")"
Ich habe nun den Code den Wünschen Balus entsprechend verfeinert:
Code: Alles auswählen
Sub Auswertung
Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
dim Begriff(3)
Doc = ThisComponent
Auswertungssheet=Doc.sheets.getbyname("Auswertung")
for i = 1 to 3 'Suchbegriffe eingeben
Begriff(i)=inputbox ("Begriff "+i+": ","Suchbegriffe eingeben")
next i
for i =0 to 2
osheetname=Doc.sheets(i).name
for k = 1 to 3
Cell = Auswertungssheet.getCellByPosition(i, k)
Cell.Formulalocal = "=SUMMENPRODUKT(("+osheetname+".B5:B45="""+begriff(k)+""")*("+osheetname+".A5:A45))"
next k
next i
End Sub
Auswertung_3_Sheets.ods
Gruß R