Einzelnen Beitrag anzeigen

r3v0

Registriert seit: 26. Mär 2007
Ort: Wegberg
45 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Excel Dokument speichern ohne Sicherheitsabfrage

  Alt 18. Apr 2007, 11:47
Hallo Zusammen,

Das was hier schon steht habe ich gerade auch mal Probiert.
Beim ersten Klicken klappt das auch doch sobald ich das 2te mal das machen möchte setzt der Workbooks.count auf null und springt nicht in die For schleife rein! Wenn ich die forschleife rauslasse und eine 1 also i eintrag kommt ungütliger Index

Code:
Delphi-Quellcode:
procedure TfrmZeiterfassung.AnfangArbeitClick(Sender: TObject);
var
  i: Integer;
begin
  if AmArbeiten= true then
    Messagedlg('Sie Sind schon am Arbeiten',mtError,[mbok],0)
  else
  begin
    Excel:= CreateOleObject('Excel.Application');
    Excel.Workbooks.open(ExtractFilePath(Application.ExeName) + 'Zeiterfassung2007.xls');
    excel.sheets[AktuelleMappe].cells[AktuelleZeile,1].value:=DateToStr(AktuellesDatum);
    AmArbeiten:= true;
    AnfangsZeitArbeit:= Time;
    ShowMessage(TimeToStr(AnfangsZeitArbeit));
    excel.sheets[AktuelleMappe].cells[AktuelleZeile,2].value:= TimeToStr(AnfangsZeitArbeit);
    for i := 1 to xl.Workbooks.Count do
      xl.Workbooks[i].Save(GetUserDefaultLCID);
    Excel.Quit;
  end;

end;



procedure TfrmZeiterfassung.EndeArbeitClick(Sender: TObject);
var
  i: Integer;
begin
  if AmArbeiten= false then
    Messagedlg('Sie Sind nicht am Arbeiten',mtError,[mbok],0)
  else
  if InDerPause= true then
    Messagedlg('Sie sind noch in der Pause',mtError,[mbok],0)
  else
  begin
    Excel:= CreateOleObject('Excel.Application');
    Excel.Workbooks.open(ExtractFilePath(Application.ExeName) + 'Zeiterfassung2007.xls');
    AmArbeiten:= false;
    EndeZeitArbeit:= Time;
    ShowMessage(TimeToStr(EndeZeitArbeit));
    excel.sheets[AktuelleMappe].cells[AktuelleZeile,5].value:= TimeToStr(EndeZeitArbeit);
    for i := 1 to xl.Workbooks.Count do
      xl.Workbooks[i].Save(GetUserDefaultLCID);
    Excel.Quit;
  end;
end;



procedure TfrmZeiterfassung.AnfangPauseClick(Sender: TObject);
var
  i: integer;
begin
  if AmArbeiten= false then
    Messagedlg('Sie können nicht in die Pause gehen da sie noch nicht am Arbeiten sind.',mtError,[mbok],0)
  else
  begin
    if InderPause= true then
      Messagedlg('Sie Sind schon in der Pause.',mtError,[mbok],0)
    else
    begin
      Excel:= CreateOleObject('Excel.Application');
      Excel.Workbooks.open(ExtractFilePath(Application.ExeName) + 'Zeiterfassung2007.xls');
      InderPause:= true;
      AnfangsZeitPause:= Time;
      ShowMessage(TimeToStr(AnfangsZeitPause));
      excel.sheets[AktuelleMappe].cells[AktuelleZeile,3].value:= TimeToStr(AnfangsZeitPause);
      for i := 1 to xl.Workbooks.Count do
        xl.Workbooks[i].Save(GetUserDefaultLCID);
      Excel.Quit;
    end;
  end;
end;



procedure TfrmZeiterfassung.EndePauseClick(Sender: TObject);
var
  i: integer;
begin
  if AmArbeiten= false then
    Messagedlg('Sie können nicht in die Pause gehen da sie noch nicht am Arbeiten sind.',mtError,[mbok],0)
  else
  begin
    if InderPause= false then
      Messagedlg('Sie Sind nicht in der Pause.',mtError,[mbok],0)
    else
    begin
      Excel:= CreateOleObject('Excel.Application');
      Excel.Workbooks.open(ExtractFilePath(Application.ExeName) + 'Zeiterfassung2007.xls');
      InderPause:= false;
      EndeZeitPause:= Time;
      ShowMessage(TimeToStr(EndeZeitPause));
      excel.sheets[AktuelleMappe].cells[AktuelleZeile,4].value:= TimeToStr(EndeZeitPause);
      for i := 1 to xl.Workbooks.Count do
        xl.Workbooks[i].Save(GetUserDefaultLCID);
      Excel.Quit;
    end;
  end;
end;
Blub ich bin die Sig.
  Mit Zitat antworten Zitat