Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Formel in Excel wird nicht übergeben (https://www.delphipraxis.net/78470-formel-excel-wird-nicht-uebergeben.html)

Christophe 5. Okt 2006 14:34


Formel in Excel wird nicht übergeben
 
Hallo

Wie übergebe ich eine WENN Formel an Excel?

Delphi-Quellcode:
excel.Sheets['Inkasso Länderliste'].Cells[x + emptyCell,4].Formula := '=WENN(C'+IntToStr(x + emptyCell)+' > B'+IntToStr(x + emptyCell)+';"Die eingegebene Menge ist zu gross;)"';
Wenn ich die Formel so übergebe bekomme ich einen OLE Fehler! Nach meiner Fehlersuche habe ich rausgefunden das die ; und die " probleme bei der übergabe verursachen.

Grüsse Christophe

Keldorn 5. Okt 2006 18:09

Re: Formel in Excel wird nicht übergeben
 
Hallo

die Formelnamen müssen englsich sein, nicht deutsch, auch wenn du dann wieder im Excelblatt die dt. Bezeichnung siehst, übergeben mußt du die Formel mit "if".

Mfg Frank

Christophe 6. Okt 2006 08:13

Re: Formel in Excel wird nicht übergeben
 
Hallo

Erstmal danke für eure Hilfe. Aber das mit der Formel geht leider nicht. Das Problem ist das die Formel sobald ich einen ';' oder '"' einfüge ich einen Fehler erhalte --> Meldung: 'OLE-Fehler 800A03EC' und dann is aus die Maus. Die Formel wird sauber übergeben wenn ich nur

Delphi-Quellcode:
... '=IF(C'+IntToStr(x + emptyCell)+' > B'+IntToStr(x + emptyCell)+'
einfüge. :gruebel: Sobald ich den Rest der Formel übergebe:

Delphi-Quellcode:
;"Die eingegebene Menge ist zu gross;)"'
erhalte ich diesen Fehler. Es liegt also nur noch am letzten teil dieser Formel. Aber was ich auch Probiere es will nicht gelingen.
:wall:
HILFE :-)

volkerw 6. Okt 2006 08:37

Re: Formel in Excel wird nicht übergeben
 
Hallo Christophe,
da hast Du einen kleinen Verdreher drin, so sollte es gehen:
Delphi-Quellcode:
;"Die eingegebene Menge ist zu gross;")'
Gruß Volker

Christophe 6. Okt 2006 09:13

Re: Formel in Excel wird nicht übergeben
 
Hmmm ... das wars leider auch nicht. Hier nochmal die ganze Codezeile:

Delphi-Quellcode:
excel.Sheets['tabelle1'].Cells[x + emptyCell,4].Formula := '=IF(C'+IntToStr(x + emptyCell)+' > B'+IntToStr(x + emptyCell)+';"Die eingegebene Menge ist zu gross";"")';
Vom Syntax her sollte es stimmen. Aber komme nicht drauf wieso ole zickt. :kotz:

marabu 6. Okt 2006 09:16

Re: Formel in Excel wird nicht übergeben
 
Hallo Christophe,

x ist dein Zeilenindex? Ich würde es so versuchen:

Delphi-Quellcode:
const
  FT = '=IF(C%d > B%d, "Die eingegebene Menge ist zu gross")';
var
  iRow: Integer;
begin
  // ...
  iRow := x; // wäre y nicht besser gewesen?
  excel.Sheets['Inkasso Länderliste'].Cells.Item[iRow, 4].Formula := Format(FT, [iRow, iRow]);
  // ...
end;
Grüße vom marabu

Elvis 6. Okt 2006 09:16

Re: Formel in Excel wird nicht übergeben
 
Parameter werden wahrscheinlich mit "," getrennt.
";" benutzt Office in der UI eigentlich nur wenn man lokalisierte Versionen benutzt oder wenn der Dezimaltrenner in Windows "," ist.
Die Formel selbst sollte also ganz einfach nicht die eingedeutschte Variante enthalten.

Ferber 6. Okt 2006 09:59

Re: Formel in Excel wird nicht übergeben
 
Hallo Christophe.
IMHO sehr hilfreich ist es, die Formel in EXCEL zu formulieren und dann mit Delphi zu lesen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var st:String;
begin
  st:=Excel.ActiveSheet.Cells[1,1].Formula;
  MessageDlg(st,mtInformation,[mbOk],0);
  Excel.ActiveSheet.Cells[2,1].Formula:=st; // Test
end;
Damit siehst Du sofort, wie's Excel will. :idea:

Christophe 6. Okt 2006 10:16

Re: Formel in Excel wird nicht übergeben
 
JO ELVIS das war die lösung :coder2: .... coole sache. :cheers:

Ich danke euch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz