Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Excel soll mitzählen


D. Annies - Di 07.08.07 09:15
Titel: Excel soll mitzählen
Hi, Delpher,

ich schreibe eine Excel-Datei fort.

Mit dem Befehl


Delphi-Quelltext
1:
r := Excel.workbooks[1].worksheets[1].UsedRange.rows.count;                    


bekomme ich die Anzahl der beschriebenen Zeilen in Excel.
Also kann ich in excel.cells[r+1,...] den nächsten Eintrag machen (fortschreiben).

Aber wie kriege ich Excel dazu, die Formel zur Summenberechnung auch anzupassen. Diese ist in excel.cells[3,5] fest eingetragen.

Bisher steht da die Formel: =summe(e3:e18)
Die muss sich ja mitändern, so dass e19 mit in die Berechnung einbezogen wird.

Wer hat davon einen Plan??

Danke für Hilfe,
Detlef


ene - Di 07.08.07 09:23

Moin,

versuchs mal so:

.Formula:= '=Summe(E3:E' + r + ');


D. Annies - Di 07.08.07 09:41

Moin, ene,

danke: ich habe geschrieben:


Delphi-Quelltext
1:
excel.cells[3,3].Formula:= '=Summe(C3:C' + inttostr(r) + ')';                    


mal sehen, ob das klappt..

Gruß, Detlef


azrael_7 - Di 07.08.07 10:30

Hab grad ein ähnlich ausgartetes Problem und suchte auch verzweifelt nach der Lösung, die Formel in eine Zelle einzutragen... Excel wollte die mir nicht ausrechnen...

Bin in mehreren Versuchen quasi zu der gleichen Lösung gekommen, wobei mir aber aufgefallen ist, dass ich mit


Delphi-Quelltext
1:
 Worksheet.Cells[tmpposition, 2].Formula := '=SUMME(A1:A100)';                    


nicht weit komme... die von mir genutzte Excel-Version springt nur auf den englischen Befehl


Delphi-Quelltext
1:
 Worksheet.Cells[tmpposition, 2].Formula := '=SUM(A1:A100)';                    


an... mit SUMME bekomme ich nur #NAME? in den zellen angezeigt... evtl. hilft das dir auch weiter...´


Edit: siehe nachfoldenden Beitrag....


ene - Di 07.08.07 10:35

Versuchs mal sonst mit einem = vor der eigentlichen Funktion.


azrael_7 - Di 07.08.07 10:37

Ups... :oops: ja... C&P will gelernt sein :roll:


hab natürlich das '=' im Text drinne gehabt... trotzdem wills net mit SUMME... (habs oben im Code editiert)


D. Annies - Di 07.08.07 11:17

bei mir läufts auch noch nicht, Fehlermeldung:

Die Formel enthält Text, der nicht interpretiert werden kann

Brüt, brüt ...

P.S. wie ist das gemeint: versuchs mal mit einem = vor der eigentlichen Formel? denn auch ich kriege #TEXT


ene - Di 07.08.07 11:34

Du fügst dort eine Formel in eine Zelle ein und eine Formel beginnt in Excel mit einem =, also muss das = auch Teil des Strings sein, denn sonst steht dort nur die Formel und das kann Excel nicht interpretieren. Also muss der Code auch entsprechend aufgebaut sein:


Delphi-Quelltext
1:
.Formula:= '=Summe(E3:E' + IntToStr(r) + ')';                    


Manchmal hakt es dann auch bei den Hochkommatas, und man muss sich mit doppelten behelfen, allerdings habe ich das erst bei relativen Formeln erlebt.


D. Annies - Di 07.08.07 11:38

hi, habe jetzt folgendes gefunden:


Delphi-Quelltext
1:
Excel.workbooks[1].worksheets[1].Range['C4','C4'].Formula := '=SUMME(C6:C' + inttostr(r+1) + ')';                    


D. Annies - Di 07.08.07 11:42

klappt auch nicht.

ich habe

Delphi-Quelltext
1:
excel.cells[4,3].Formula := '=SUMME(C6:C' + inttostr(r+1) + ')';                    

was ist daran noch falsch???


azrael_7 - Di 07.08.07 11:47

versuch mal:


Delphi-Quelltext
1:
excel.Worksheet.cells[4,3].Formula := '=SUM(C6:C' + inttostr(r+1) + ')';                    


Bei mir hats damit geklappt


D. Annies - Di 07.08.07 12:15

Hi, azrael_7

na endlich hats mit dieser Idee geklappt!

sum statt summe :? :twisted: :idea: 8)

Grüße aus Lübeck,
Detlef