Autor Thema: Excel-Datei in Notesdokument öffnen  (Gelesen 1899 mal)

Offline qp

  • Frischling
  • *
  • Beiträge: 13
  • Ich liebe dieses Forum!
Excel-Datei in Notesdokument öffnen
« am: 21.07.03 - 09:22:05 »
Hi,

ich will in Notesdokumente Officeanwendungen einbinden. Soweit funktioniert das auch. Bei Word kann ich eine Vorlagedatei öffnen. Dazu benutze ich folgende Routine:
  ' Objekt in einem UI-Dokument erstellen
  Set varObj = uidoc.CreateObject("OLEObject","Word.Document")
  ' An Objekt die Templatedatei anhängen und öffnen
  Call varObj.Range().InsertFile(strTemplate)


Für Word läuft das auch zufriedenstellend. Jetzt suche ich für Excel eine Funktion, die das "varObj.Range().InsertFile(file)" aus der Wordroutine übernimmt.

Wäre klasse, wenn jemanden etwas dazu einfallen würde. Ich bin für jede Hilfe dankbar.

ciao
qp

Offline Till_21

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • I love Germany
Re:Excel-Datei in Notesdokument öffnen
« Antwort #1 am: 21.07.03 - 10:10:02 »
tip:
excel oeffnen, macro aufzeichnen, aktion machen, macro beenden, quellcode kopieren, notes designer oeffnen, pasten

gruss

Offline qp

  • Frischling
  • *
  • Beiträge: 13
  • Ich liebe dieses Forum!
Re:Excel-Datei in Notesdokument öffnen
« Antwort #2 am: 21.07.03 - 11:38:21 »
Hi,

habe ich ja schon versucht. Allerdings bekomme ich ständig die Meldung, dass die Methode nicht unterstützt wird.

Ich hole mir das Handle über

  call varObj = CreateObject("OLEObject", "Excel.Sheet")

Wenn ich davon ausgehe, dass ich ein Handle auf ein Sheet-Objekt zurückgeliefert bekomme, müsste ich ja mit

  varObj.Sheets.Add "type:=PfadMitVorlagedatei"

ein entsprechendes Arbeitsblatt hinzufügen können. Ich bekomme aber immer die Meldung, dass die Add-Methode des Sheet-Objekts nicht ausgeführt werden kann.

Ich gebe die Hoffnung dennoch nicht auf, dass hier jemand noch den Geistesblitz hat.

Schon mal Danke im voraus
qp

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Excel-Datei in Notesdokument öffnen
« Antwort #3 am: 21.07.03 - 20:35:12 »
... geh al in die VBA-Hilfe in Excel - deine Parameterübergabe funktioniert so nicht. In der Hilfe sind die Argumente im herkömmlichen Stil dargestellt - dann sollte es passen...

ata
Grüßle Toni :)

Offline qp

  • Frischling
  • *
  • Beiträge: 13
  • Ich liebe dieses Forum!
Re:Excel-Datei in Notesdokument öffnen
« Antwort #4 am: 21.07.03 - 23:13:39 »
Hi,

aus der VBA-Hilfe von Excel habe ich den Aufruf ja her. Nur die Anführungszeichen um das Type-Argument habe ich hinzugefügt. Notes beschwert sich, wenn sie nicht gesetzt sind.
Lasse ich aber Teil mit

  Type := "PfadMitDatei"

weg, wird problemlos ein neues Tabellenblatt angelegt. Nur das Einfügen einer Vorlage will nicht funktionieren.

Ich habe auch schon versucht, mir das Handle über den Namen zu holen und damit zu steuern:

  dim objOLE as variant
  set objOLE = GetObject("OLEObject")
  varOLE.Sheet.Add "Type:=PfadMitVorlage"

Damit bekomme ich jedoch die gleiche Fehlermeldung ... komme also auch nicht weiter!

Wenn Du einen konkreten Tipp hättest, wäre ich Dir sehr dankbar.

ciao ... und gute Nacht
qp

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:Excel-Datei in Notesdokument öffnen
« Antwort #5 am: 22.07.03 - 06:47:57 »
wie schon erwähnt wurde, musst du deine Parameter in LS anders übergeben, als in dem Code, der vom Makrorekorder erzeugt wird, nämlich in Klammern nach dem Funktionsnamen.
Syntax aus der Excel-Hilfe:

Zitat

Ausdruck.Add(Before, After, Count, Type)

Ausdruck   Erforderlich. Ein Ausdruck, der eines der oben aufgeführten Objekte zurückgibt.

Before   Optionaler Variant-Wert. Ein Objekt, das das Blatt festlegt, vor dem das neue Blatt eingefügt werden soll.

After   Optionaler Variant-Wert. Ein Objekt, das das Blatt festlegt, nach dem das neue Blatt eingefügt werden soll.

Count   Optionaler Variant-Wert. Die Anzahl der hinzuzufügenden Blätter. Der Standardwert ist Eins.

Type   Optionaler Variant-Wert. Legt den Blattyp fest. Kann eine der folgenden XlSheetType-Konstanten sein: xlWorksheet, xlChart, xlExcel4MacroSheet oder xlExcel4IntlMacroSheet. Der Standardwert ist xlWorksheet.

Hinweise
Wenn Before und After nicht angegeben werden, wird das neue Blatt vor dem aktiven Blatt eingefügt.

« Letzte Änderung: 22.07.03 - 06:49:38 von potsmoker »
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline qp

  • Frischling
  • *
  • Beiträge: 13
  • Ich liebe dieses Forum!
Re:Excel-Datei in Notesdokument öffnen
« Antwort #6 am: 22.07.03 - 22:59:57 »
Hi,

danke für die Hilfe!

Hat aber alles nicht funktioniert. Letztlich habe ich es doch noch geschafft, aber über Umwege.

Für alle, die es interessiert - hier eine kurze Beschreibung:

Ich lasse das Exceldokument über eine Aktion öffnen. In dieser Aktion lasse ich im Backend ein Dokument öffnen, dem ich zwei RT-Felder einfüge. In einem erzeuge ich ein embedded object

  Set varObj = rtitem.EmbedObject (EMBED_OBJECT, "", "PfadMitDatei, "OLEObject")

Anschliessend weise ich dem Backenddokument Formname und Fenstergrösse zu, lasse es neu berechnen und öffne es im Frontend.

  ' Embedded Object auf Fenstergrösse maximieren
  object.FitToWindow = True
  ' Berechnete Felder in der Maske neu berechnen
  Call docExcel.ComputeWithForm(False, False)
  ' Dokument im Edit-Modus im Frontend öffnen
  Call ws.EditDocument (True, docExcel)

Das FrontendDok besitzt die zwei RT-Felder. Weiterhin ist in den Eigenschaften unter "Auto-Start" eingestellt, dass das erste OLE-Objekt automatisch gestartet wird.

Im Postopen-Bereich ist folgendes eingetragen:

  Sub Postopen(Source As Notesuidocument)
   
    ' NotesVariablen
    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
   
    ' Allgem. Variablen
    Dim varObj As Variant
   
    ' Frontend-Dokument holen
    Set uidoc = ws.CurrentDocument
   
    ' Cursor in erstes RT-Feld setzen
    Call uidoc.GotoField("Body")
   
    ' OLE-Objekt erzeugen und Handle an Variant-Variable übergeben
    Set varObj = uidoc.CreateObject("OLEObject", "Excel.Sheet")
   
  End Sub

Damit lassen sich neben Exceldokumenten auch Worddokumente öffnen.

ciao und gute Nacht
qp
« Letzte Änderung: 23.07.03 - 09:40:32 von qp »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz