Autor Thema: Excel save and close  (Gelesen 6420 mal)

Offline developperFLY

  • Frischling
  • *
  • Beiträge: 8
Excel save and close
« am: 08.01.10 - 09:37:41 »
Hallo zusammen

Ich muss einen Export einer DB machen. Mir ist es möglich das File soweit mit den Daten zu befüllen. Nur habe ich Mühe mit dem Save and Close. Es wird kein bestehendes Excel File geöffnet, sondern nur eines erstellt und soll dan gespeichert werden.


'erstellungen
Set Excel = CreateObject("Excel.Application")
Excel.Visible = False
Call Excel.Workbook.add
Set xlWorkbook = Excel.Workbooks
Set xlSheet = Excel.Workbooks(1).Worksheets(1)

'Mit daten befüllen
'......

'Abschluss
Call Excel.SaveAs(xlFilename)
Call xlWorkbook.Close()
Call Excel.Quit()
Set Excel = Nothing

Also irgendwie hagt er mit Excel.SaveAs ... Gibt es irgendwo eine Referenz seite wo alle Excel Klassen aufgelistet sind?

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Excel save and close
« Antwort #1 am: 08.01.10 - 09:41:05 »
In der VBA-Hilfe von Ecxel.

THT

Rainer
Rainer Zaske

MCSD - C#

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Excel save and close
« Antwort #2 am: 08.01.10 - 09:51:23 »
Hallo,

Auch zu empfehlen ist, wenn Du in der VBA-Umgebung bist und die Taste F2 (Objektkatalog) betaetigst.


Andreas

Offline developperFLY

  • Frischling
  • *
  • Beiträge: 8
Re: Excel save and close
« Antwort #3 am: 08.01.10 - 10:25:21 »
Call Excel.SaveWorkspace([Filename])

habe ich gefunden, aber, er frägt nun folgt ein SPeicher Dialog. Und er frägt den User, wo soll er das Excel File speichern.

Wie kann ich das verstecken. Den die Funktion übernimmt keinen parameter sonst mehr? (forcieren).

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Excel save and close
« Antwort #4 am: 08.01.10 - 10:48:35 »
Indem Du den vollen Pfad mitgibst.

z.B. c:\temp\blabla.xls

Und das aktive Workbook nimmst

    ActiveWorkbook.SaveAs filename, _
        FileFormat:=xlExcel9795, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Excel save and close
« Antwort #5 am: 08.01.10 - 10:54:23 »
Hallo,

Und um es in eine Prozedur-Schreibweise zu packen

Call Workbook.SaveAs(Filename, Fileformat)


Mehr brauchst Du eigentlich nicht.


Andreas

Offline Wulfman

  • Frischling
  • *
  • Beiträge: 42
Re: Excel save and close
« Antwort #6 am: 24.02.10 - 13:22:45 »
Hallo,

ich hab das jetzt so gemacht, weil die angegebenen Beispiele bei mir nicht funktioniert haben.

Call oExcel.SaveWorkbook("T:\Programmdaten\F-Call\b1s-ma_2.xls")
Delete oExcel


Notes legt die Datei an, aber wenn ich sie mit Excel öffnen will kommt die Fehlermeldung dass ich eine Datei öffnen möchte, deren Format von dem in der Dateierweiterung angegebenen abweicht.

Ich öffne dann trotzdem und speichere sie mit Excel wieder ab. Dann kommt die Meldung nicht mehr und die Datei ist doppelt so groß wie vorher.

Kann man da was machen, dass dies nicht mehr vorkommt? Ich möchte diese Datei automatisiert regelmäßig erzeugen und per Mail versenden.

Gruß

Wolfgang

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Excel save and close
« Antwort #7 am: 24.02.10 - 13:48:34 »
Um bei Deinem Beispiel zu bleiben.

Call oExcel.ActiveWorkbook.SaveAs(<Dein Dateiname>, <Dateiformat>)

Die Konstanten und deren Werte - fuer das Dateiformat - kannst Du der VBA-Hilfe in Excel entnehmen.

Auch wuerde ich nicht sofort mit Delete oExcel arbeiten, sondern erst einmal
oExcel.Quit und dann erst Dein Delete.


Andreas

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Excel save and close
« Antwort #8 am: 24.02.10 - 13:52:07 »
Ich vergass noch.

Zitat
Ich möchte diese Datei automatisiert regelmäßig erzeugen und per Mail versenden
Was kann man sich hierunter vorstellen?

Wenn ein periodischer Agent sich dahinter verbergen soll, dann bekommst Du auf jeden Fall Probleme beim Ablegen der Daten auf einem Netzwerklaufwerk.


Andreas

Offline Wulfman

  • Frischling
  • *
  • Beiträge: 42
Re: Excel save and close
« Antwort #9 am: 24.02.10 - 14:41:27 »
Wenn das alles automatisiert läuft lege ich die Datei natürlich auf einem Serverlaufwerk ab.

Hab festgestellt, dass der Befehl oExcel.Quit auch nicht funktioniert, als Fehler erscheint:

Not a member: QUIT
« Letzte Änderung: 24.02.10 - 15:00:50 von Wulfman »

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Excel save and close
« Antwort #10 am: 24.02.10 - 15:35:58 »
Zitat
dass der Befehl oExcel.Quit auch nicht funktioniert
Das wundert mich nun doch etwas.

Denn genau diesen Befehl verwende ich bei meinen Export-Routinen permanent (Excel 97 - 2007) und hatte noch nie derartige Probleme.

Zitat
lege ich die Datei natürlich auf einem Serverlaufwerk ab
Genau das wird ja dann das Problem.
Agent = scheduled (laeuft unter dem Benutzer, unter dem der Server gestartet wurden)
Da dieser jedoch in den meisten Faellen als Dienst definiert ist, hat der Server ein Systemkonto und dieses hat keine Möglichkeit auf Netzwerklaufwerke zuzugreifen.
Wurde in den verschiedenen LN-Foren bereits ausgiebig diskutiert.


Andreas

Offline Wulfman

  • Frischling
  • *
  • Beiträge: 42
Re: Excel save and close
« Antwort #11 am: 24.02.10 - 15:39:01 »

Zitat
lege ich die Datei natürlich auf einem Serverlaufwerk ab
Genau das wird ja dann das Problem.
Agent = scheduled (laeuft unter dem Benutzer, unter dem der Server gestartet wurden)
Da dieser jedoch in den meisten Faellen als Dienst definiert ist, hat der Server ein Systemkonto und dieses hat keine Möglichkeit auf Netzwerklaufwerke zuzugreifen.
Wurde in den verschiedenen LN-Foren bereits ausgiebig diskutiert.


Andreas

mit Serverlaufwerk meine ich Laufwerk auf Domino-Server

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz