Autor Thema: Werte in bereits vorhandenes Excel exportieren  (Gelesen 1883 mal)

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Werte in bereits vorhandenes Excel exportieren
« am: 28.02.06 - 10:28:33 »
Hi ihr,

ich bin gerad via script mehrere Dokumente ins Excel zu kopieren. Das war bis jetzt eigentlich nicht so das Problem. Ich habe einfach folgenden Code verwendet:
Code
Set exlApp= CreateObject("Excel.application")
Set exlSheet = exlApp.Workbooks(1).Worksheets(1)
Dann hab ich mit z.B.
Code
exlSheet.Cells(10,1).Value = "Werte"
und so weiter die Zeilen befüllt, formatiert. So wie ich es halt möchte.

Jetzt steh ich aber vor folgendem Problem.....
Die Werte sollten in eine bereits fertige Excel Vorlage geschrieben und danach geöffnet werden. (Abspeichern ist nicht nötig). Ich habe dazu in einem Profildokument ein RTF erstellt, in das die Vorlage eingehängt wird. Mit
Code
Set rtitem = doc.GetFirstItem( "Vorlage" )
If ( rtitem.Type = RICHTEXT ) Then
   Forall o In rtitem.EmbeddedObjects
      If ( o.Type = EMBED_ATTACHMENT ) Then
hab ich dann das Excelobject in der Variable o.
Um jetzt meine Werte in das excel schreiben zu können, muss ich jetzt die variablen exlApp und exlSheet befüllen. Die Variable o entspricht aber nicht dem Ergebnis, das man mit
Set exlApp= CreateObject("Excel.application")
bekommt.
Kann mir vieleicht jemand sagen, wie ich von dem o zu dem exlApp komme?

Vielen Dank und Lei Lei  :-P

-daniel
« Letzte Änderung: 28.02.06 - 12:52:10 von rar »
†090620141300

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Werte in bereits vorhandenes Excel exportieren
« Antwort #1 am: 28.02.06 - 10:42:55 »
Du muss die Vorlage aus dem Profildokument erstmal ins Filesytem lösen. Dann kannst du sie in Excel öffnen und füllen.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: Werte in bereits vorhandenes Excel exportieren
« Antwort #2 am: 28.02.06 - 11:07:17 »
Danke für den Tipp Axel.  Klingt einleuchtend. Leider klappt es noch nicht ganz.

Ich extracte das file erst mit Call o.ExtractFile( "C:\Test.xls" ) dann hol ich es mir mit Set exlApp =GetObject ( "C:\Test.xls" ). In der Vorlage sind Makros drin. Dadurch sieht man, dass das GetObject eigentlich funktioniert. Denn bei der Zeile kommt sofort die Meldung ob man die Macros aktivieren bzw deaktivieren möchte.
Wenn ich dann aber irgendwas mit der Object machen möchte, (z.B. Set exlSheet = exlApp.Workbooks(1).Worksheets(1), oder exlApp.Visible = True) kommt die Fehlermeldung Instance Member VISIBLE does not exist. Wenn das Object aber mit Set exlApp = CreateObject("Excel.application") erzeugt gehts...

Komisch
lG
-daniel
†090620141300

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Werte in bereits vorhandenes Excel exportieren
« Antwort #3 am: 28.02.06 - 11:34:47 »
tja, durch Dein "GetObject" erhälst Du Dummerweise kein "Excel.application" sondern eher ein Workbook- Objekt...

Und ein Workbook- Objekt hat nun mal keine "Workbooks"- Eigenschaft.

Du musst Dir Deine exlApp schon nochmal extra erstellen, wenn Du über "visible" etc. bestimmen willst... (Application- Eigenschaft der Workbook- Klasse....

und an die Arbeitblätter kommst Du ganz einfach über .Worksheets( 1 )

HTH
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Werte in bereits vorhandenes Excel exportieren
« Antwort #4 am: 28.02.06 - 11:53:36 »
Ich mach' das immer so:

Code

Dim objExcel As Variant
Dim objSheet As Variant    

On Error Resume Next
		
Set objExcel = GetObject("", "Excel.Application")
  If Err = 208 Then  '  Fehler 208 tritt auf wenn Excel noch nicht läuft
     Err = 0
     Set objExcel = CreateObject("Excel.Application")   'Excel "unsichtbar" starten
  End If  'If Err = 208 Then

On Error Goto ErrorHandler

Call objExcel.Workbooks.Open ("Laufwerk:\Verzeichnis\Dateiname.xls")
Set objSheet = objExcel.Workbooks(1).Worksheets(1)
...
'Füllen der Zellen
...

'Excel sichtbar machen
objExcel.Visible = True

...
ErrorHandler:
' Hier erfolgt die Fehlerbehandlung
...


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: Werte in bereits vorhandenes Excel exportieren
« Antwort #5 am: 28.02.06 - 12:51:47 »
@Tode:
Wenn ich meine Variable mit GetObject befülle und dann mit variable.Worksheets( 1 ) auf die Arbeitsblätter zugreifen möchte, kommt die Fehermeldung "Automation object member not found". Wahrscheinlich bringt GetObject doch ein anderes Object zurück. Ist aber nicht weiter schlimm, denn.....

@Axel:
Deine Methode ist der Hammer. Sie macht genau das, was ich möchte und funktioniert einwandfrei.

Vielen, vielen Dank. Tag gerettet. ;D

lG
-daniel
†090620141300

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz