Autor Thema: Object automation error  (Gelesen 2806 mal)

Offline tge

  • Junior Mitglied
  • **
  • Beiträge: 65
Object automation error
« am: 03.04.07 - 15:36:08 »
Hallo allerseits,

ich habe eine Notes-Datenbank (entwickelt noch unter R5) mit einem Agenten, der eine Excel-Tabelle im Frontend erstellt. Solange der Client Notes R5 verwendet, funtioniert der Agent fehlerfrei. Wird die Datenbank und somit der Agent allerdings mit einem R7-Client geöffnet bzw. ausgeführt, gibt's bei Excel-Fomulas einen "Object automation error".
Das Script sieht vereinfacht folgendermaßen aus:

Set v_xlApp = CreateObject("Excel.Application")
v_xlApp.Workbooks.Add
Set v_xlSheet = v_xlApp.Workbooks(1).Worksheets(1)

(...)

With v_xlSheet
       .cells(Zeile,Spalte + 9).Formula = "=WENN(A1=0;0;A2)"  'in dieser Zeile tritt der Fehler auf

(...)

End with

Soweit ich herausgefunden habe, scheint die Eigenschaft "Formula" hier Probleme zu machen, ohne dass es eine Rolle spielt, welche Excel-Version (Excel 97 oder Excel 2002) verwendet wird. Nur der Releasewechsel von Notes auf dem Client scheint plötzlich diesen Fehler aufzuwerfen.

Hat jemand eine Idee, woran das liegen kann?

Vielen Dank im voraus & viele Grüße
Thorsten

   
« Letzte Änderung: 04.04.07 - 08:37:27 von tge »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Object automation error
« Antwort #1 am: 03.04.07 - 23:47:18 »
Thorsten, das ist per COM ausgeführter VBA-Code, der ist also dem Notes-Client egal (weil er den nur weitergibt).

Hast Du diesen Code auf einer Maschine unter beiden Notes-Releases getestet? Wie sieht überhaupt Deine Testumgebung aus?

Bernhard

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Object automation error
« Antwort #2 am: 04.04.07 - 07:41:58 »
Moin,moin,

habe den Code mal in Excel selbst getestet, da funktioniert er auch nicht. Habe daraufhin nen Beitrag im MS-Office-Forum aufgemacht. Lösung wurde gepostet.

Gruß
Demian
« Letzte Änderung: 04.04.07 - 07:44:05 von Demian »
Gruß
Demian

Offline tge

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: Object automation error
« Antwort #3 am: 04.04.07 - 08:19:02 »
Hallo Bernhard,

getestet habe ich das ganze in einer Server-Client-Umgebung. Auf einer Workstation ist Windows XP Professional und Excel 2002, SP3 und auf der anderen Windows NT 4.0, SP6 mit Excel 97 SR-2 installiert. Wir haben die Möglichkeit, auf beiden Workstations entweder Notes R5 oder Notes R7 zu nutzen. Darüber hinaus gibt es zwei Notes-Server, einer mit Notes R7, der andere mit Notes R5.
Auf jeder Workstation habe ich jeweils folgende Konstellationen getestet:
Notes-Server R7 mit Client Notes R5 – Ergebnis: Kein Fehler.
Notes-Server R5 mit Client Notes R5 – Ergebnis: Kein Fehler.
Notes-Server R5 mit Client Notes R7 – Ergebnis: Fehler!
Notes-Server R7 mit Client Notes R7 – Ergebnis: Fehler!

Eigentlich habe ich ja auch gedacht, dass Notes hier keine Rolle spielt, aber mich wundert’s schon, dass der Fehler nur bei Ausführung über den R7-Client auftritt, während das Script beim R5-Client fehlerfrei durchläuft und die Excel-Tabelle einschließlich der WENN-Formeln einwandfrei erstellt wird.

Viele Grüße
Thorsten

Offline tge

  • Junior Mitglied
  • **
  • Beiträge: 65
Re: Object automation error
« Antwort #4 am: 04.04.07 - 08:36:55 »
Hi Demian,

statt WENN die engl. Form IF zu verwenden, hatte ich auch schon probiert. 'FormulaLocal' aber funktioniert!! Problem gelöst.

Vielen Dank für Deine Mühe. Und natürlich auch an Bernhard ein herzliches Dankeschön.

Viele Grüße
Thorsten

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Object automation error
« Antwort #5 am: 04.04.07 - 08:50:55 »
Moin,moin,

also bei mir geht folgender Code:

Code
Set v_xlApp = CreateObject("Excel.Application")
v_xlApp.Workbooks.Add
v_xlapp.visible = True	
Set v_xlSheet = v_xlApp.Workbooks(1).Worksheets(1)
With v_xlSheet     
     .cells(3,3).Formula = "=if(A1=0,0,A2)" 
End With

Gruß
Demian
Gruß
Demian

Offline oson00

  • Aktives Mitglied
  • ***
  • Beiträge: 240
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Object automation error
« Antwort #6 am: 04.04.07 - 12:54:52 »
Hallo,

ich hatte malt einen ähnlichen Fehler und da lag es daran, dass die Vorlage-Datei, die EXCEL-Standardmäßig startet, weniger Arbeitsblätter bereit hielt als ich angenommen habe.

Ich wollte auf Blatt 3 schreiben, dass existierte aber nicht und schon kam der Fehler hoch.

Kontrollier mal, wie die Vorlage aussieht.

Offline andre1987

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Re: Object automation error
« Antwort #7 am: 26.09.08 - 08:59:08 »
Hallo,

ich greife das Thema mal wieder auf, denn ich habe ein ähnliches Problem. Ich muss einen Excel-Export erweitern, dass ein weiteres Feld incl. einer Formel "exportiert" wird.

Ich habe es bis hierhin geschafft:

xlsheet.Cells(rows,40).Formula = |=WENN($J2="Herr";WENN($K2="";"Sehr geehrter Herr";VERKETTEN("Sehr geehrter Herr";" ";$K2));WENN($K2="";"Sehr geehrte Frau";VERKETTEN("Sehr geehrte Frau";" ";$K2)))|

Damit bekomme ich aber einen OLE Error. Ich habe herausgefunden das Notes mir aus einem " zwei "" macht. Das verstehht Excel natürlich nicht.

Hat jemand vielleicht eine Idee ??

Gruß
André   

Offline Fedaykin

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
  • Ya Hya Chouhada!
Re: Object automation error
« Antwort #8 am: 26.09.08 - 09:45:48 »
Hallo Andrè

Versuch es doch mal xlsheet.Cells(rows,40).FormulaLocal oder schreibe die Formel in englisch.

Gruss
Remo
Ich sage Euch: "Man muss noch Chaos in sich haben, um einen tanzenden Stern gebären zu können."

Offline andre1987

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Re: Object automation error
« Antwort #9 am: 26.09.08 - 11:12:53 »
Hallo Remo,

danke so funktioniert es :-) !!

Kannst du mir vielleicht mitteilen warum oder was .FormulaLocal macht ? Wird das ganze als String übergeben ??


Gruß
André

Offline Fedaykin

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
  • Ya Hya Chouhada!
Re: Object automation error
« Antwort #10 am: 26.09.08 - 12:08:29 »
Hi André

Deine Excel Formel ist in Deutsch. Deshalb kommt Formula (international: sprich englisch) nicht damit klar. Mit FormulaLocal (lokalisiert: deutsch) kannst Du die Formel in der Sprache Deiner Excel Version übergeben. Am besten wäre natürlich schon Formula zu verwenden, dann müsstest Du aber die Formel in Englisch übergeben.

Zum Übersetzen könntest die Formel in eine leere Arbeitsmappe in Zelle A1 kopieren. Dann im VBA Direktfenster (oder über ein Makro) mit ActiveSheet.Cells(1,1).Formula auslesen (Debug.Print oder eine Msgbox).

Gruss
Remo
Ich sage Euch: "Man muss noch Chaos in sich haben, um einen tanzenden Stern gebären zu können."

Offline andre1987

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Re: Object automation error
« Antwort #11 am: 26.09.08 - 12:10:05 »
Hallo,

nun stehe ich vor einem neuen Problem. Ich habe im Prinzip in jeder Zeile einen Mitarbeiter stehen. Bedeutet die Zeile muss variabel sein. Versuche ich es mit ZS(-29) funktioniert es, aber nur dann wenn ich den Z1S1 Bezug aktiviere. Das Excelsheet in das die Werte geschrieben wird, erzeuge ich am Anfang im NotesScript. Kann ich auch da schon irgendwie übergeben, dass die Tabelle einen solchen Bezug haben soll ??


Gruß
André

Offline Fedaykin

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • Geschlecht: Männlich
  • Ya Hya Chouhada!
Re: Object automation error
« Antwort #12 am: 26.09.08 - 13:14:08 »
Hallo Andre

Verstehe nicht ganz wozu Du das ZS Zeug brauchst. Würde nicht so etwas gehen?

   Dim xl As Variant
   Dim strFormula As String
   Dim i As Long
   Set xl=createobject("Excel.Application")
   xl.visible=True
   xl.workbooks.add
   For i=1 To 10
      strFormula={=IF($J} & i & {="Herr",IF($K} & i & {="","Sehr geehrter Herr",CONCATENATE("Sehr geehrter Herr"," ",$K} & i & {)),IF($K} & i & {="","Sehr geehrte Frau",CONCATENATE("Sehr geehrte Frau"," ",$K} & i & {)))}   
      xl.activesheet.cells(i,1).Formula=strFormula
   Next i

Gruss
Remo
Ich sage Euch: "Man muss noch Chaos in sich haben, um einen tanzenden Stern gebären zu können."

Offline andre1987

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Re: Object automation error
« Antwort #13 am: 29.09.08 - 11:27:42 »
vielen dank !! hab es ein wenig angepasst und es funktioniert !!


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz