![]() |
Formel in Excel wird nicht übergeben
Hallo
Wie übergebe ich eine WENN Formel an Excel?
Delphi-Quellcode:
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.
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;)"';
Grüsse Christophe |
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 |
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:
einfüge. :gruebel: Sobald ich den Rest der Formel übergebe:
... '=IF(C'+IntToStr(x + emptyCell)+' > B'+IntToStr(x + emptyCell)+'
Delphi-Quellcode:
erhalte ich diesen Fehler. Es liegt also nur noch am letzten teil dieser Formel. Aber was ich auch Probiere es will nicht gelingen.
;"Die eingegebene Menge ist zu gross;)"'
:wall: HILFE :-) |
Re: Formel in Excel wird nicht übergeben
Hallo Christophe,
da hast Du einen kleinen Verdreher drin, so sollte es gehen:
Delphi-Quellcode:
Gruß Volker
;"Die eingegebene Menge ist zu gross;")'
|
Re: Formel in Excel wird nicht übergeben
Hmmm ... das wars leider auch nicht. Hier nochmal die ganze Codezeile:
Delphi-Quellcode:
Vom Syntax her sollte es stimmen. Aber komme nicht drauf wieso ole zickt. :kotz:
excel.Sheets['tabelle1'].Cells[x + emptyCell,4].Formula := '=IF(C'+IntToStr(x + emptyCell)+' > B'+IntToStr(x + emptyCell)+';"Die eingegebene Menge ist zu gross";"")';
|
Re: Formel in Excel wird nicht übergeben
Hallo Christophe,
x ist dein Zeilenindex? Ich würde es so versuchen:
Delphi-Quellcode:
Grüße vom marabu
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; |
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. |
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:
Damit siehst Du sofort, wie's Excel will. :idea:
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; |
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 15:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz