Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Excel starten geht/geht nicht (https://www.delphipraxis.net/96310-excel-starten-geht-geht-nicht.html)

ml2 22. Jul 2007 09:56


Excel starten geht/geht nicht
 
Hallo,

ich hänge fest. Habe Delph5 Professional und Excel starten funktioniert eigentlich mit folgendem Code über ein Form mit Button problemlos.

In dem Programm, wo ich es nutzen will, gibt es allerdings die Fehlermeldung "Variante referenziert kein Automatisierungsobjekt" bei CreateOLEObject.

Hat jemand einen Tip woran geht/geht nicht liegen könnte? Projekt-/compiler- und Linkereinstellungen scheinen identisch zu sein.

Markus


Code:
function EXCELStarten (var my_EXCEL : OLEVariant): boolean;
{erfordert in uses: comobj}
begin
   try
    my_EXCEL := CreateOLEObject('Excel.Application');
    Result := TRUE;
  except
    ShowMessage('Excel konnte nicht gestartet werden!');
    Result := FALSE;
    Exit
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Excel : OLEVariant;
begin
  EXCELStarten(Excel);  // muß wg OLE-Object auf jeden Fall (evtl. zusätzlich) gestartet werdem
  Excel.Visible := TRUE;          
end;

Chemiker 22. Jul 2007 12:03

Re: Excel starten geht/geht nicht
 
Hallo ml2,

herzlich willkommen in der DP.

Ich kann anhand Deiner Angaben nur raten. Besser währe den Code zu zeigen der nicht funktioniert.

Ich vermute einfach das Du die UNIT: comobj nicht eingebunden hast.

Bis bald Chemiker

jmit 22. Jul 2007 13:42

Re: Excel starten geht/geht nicht
 
Hallo,

hast Du schon einmal bei dsdt.info geschaut.

Dort habe ich folgendes gefunden, welches mir auch schon weitergeholfen hat: Excel

Gruß Jörg

ml2 23. Jul 2007 06:30

Re: Excel starten geht/geht nicht
 
Zitat:

Zitat von Chemiker
Ich vermute einfach das Du die UNIT: comobj nicht eingebunden hast.

Ne, ist eingebunden, sonst würde Delphi ja schon in der Codeprüfung/Compilierung meckern und nicht erst bei der Ausführung.

Markus

ml2 23. Jul 2007 06:33

Re: Excel starten geht/geht nicht
 
Zitat:

Zitat von jmit
Dort habe ich folgendes gefunden, welches mir auch schon weitergeholfen hat: Excel

Danke,
sehe ich mir heute abend mal an.

Markus

Chemiker 23. Jul 2007 06:43

Re: Excel starten geht/geht nicht
 
Hallo,

ich rate einfach weiter wie siehst mit der Unit : Excel_TLB aus, auch eingebunden?

Bis bald Chemiker

ml2 23. Jul 2007 06:52

Re: Excel starten geht/geht nicht
 
Zitat:

Zitat von Chemiker
ich rate einfach weiter

viel mehr als Raten bleibt bei dem Problem ja leider nicht.

Zitat:

Zitat von Chemiker
unit : Excel_TLB ... eingebunden?

Die kennt mein Delphi nicht.

Danke
Markus

Chemiker 23. Jul 2007 19:23

Re: Excel starten geht/geht nicht
 
Hallo ml2,

vielleicht ist es ja doch möglich den Code zu zeigen der nicht funktioniert, dann müsste man nicht raten und Du könntest sofort an Deinem Programm weiter arbeiten.

Mein letzter Versuch:

Kann es sein das Du Excel in eine Procedure oder Function aufrufst und dabei das var vergessen hast?

Delphi-Quellcode:
function EXCELStarten (my_EXCEL : OLEVariant): boolean; // Vor my_EXCEL muss ein var stehen.
Bis bald Chemiker

ml2 23. Jul 2007 19:40

Re: Excel starten geht/geht nicht
 
Zitat:

Zitat von Chemiker
Kann es sein das Du Excel in eine Procedure oder Function aufrufst und dabei das var vergessen hast?

Delphi-Quellcode:
function EXCELStarten (my_EXCEL : OLEVariant): boolean; // Vor my_EXCEL muss ein var stehen.

Ei Chemiker,

oben in meiner Anfrage steht der Code, incl. "var" :hello: Den habe ich genau so vom Ein-Button-Formular in meine Anwendung übernommen und es geht nicht. In der Anwendung gibt es keine Geheimnisse, aber in der betreffenden Extra-Unit eben nicht viel mehr als obigen Code, der über einen Button aufgerufen wird und dann nichts anderes machen soll, als die Inhalte der Edit-Felder nach Excel zu schieben, nachdem Excel und die entsprechende Datei geöffnet wurden. Nur brauch ich nicht weiter zu machen, wenn Excel gar nicht zu starten ist.

Aber trotzdem Danke
Gruß Markus

Chemiker 23. Jul 2007 20:27

Re: Excel starten geht/geht nicht
 
Hallo ml2,

natürlich kann man Edit – Felder nach Excel schieben, aber Du hast irgendwo in Deinem Code ein Fehler. Ohne nähere Informationen kann man Dir nur schwer weiter helfen.

Hier noch einmal ein Beispiel:

Delphi-Quellcode:
unit ExcelMitEditFelderFuellenUnit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,comobj, OleServer, ExcelXP;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function EXCELStarten (var my_EXCEL : Variant): boolean;
{erfordert in uses: comobj}
begin
   try
    my_EXCEL := CreateOLEObject('Excel.Application');
    Result := TRUE;
  except
    ShowMessage('Excel konnte nicht gestartet werden!');
    Result := FALSE;
    Exit
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Excel : Variant;
begin
  EXCELStarten(Excel);  // muß wg OLE-Object auf jeden Fall (evtl. zusätzlich) gestartet werdem
  Excel.Visible := TRUE;
  Excel.Application.Workbooks.Add; // Neue Arbeitsmappe öffnen in EXECL
  Excel.Worksheets ['Tabelle1'].Activate;
  Excel.cells[1,1]:= Edit1.Text;  // <------ Text
  Excel.cells[1,2]:= strtofloat(Edit2.Text); // <------- Zahl
  Excel.Quit;
end;

end.

Bis bald Chemiker


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:32 Uhr.
Seite 1 von 2  1 2      

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