Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Ken am März 06, 2013, 14:03:37

Titel: Excel über Access steuern
Beitrag von: Ken am März 06, 2013, 14:03:37
Hallo,

ich steuer ein Excelblatt über VBA Access. In einem Modul steuere ich den ersten Tab an - siehe code:

Set xlwrkbk = xlApp.Workbooks.Open(strfilename) 'wo befindet sich das Excel-File
Set xlsheet = xlApp.Application.ActiveWorkbook.Sheets("Test")
Sheets("Test").Select
xlApp.Visible = True 'Excelblatt anzeigen
xlApp.DisplayAlerts = False ' Sicherheitsabfragen unterdrücken
xlsheet.Delete 'Tab löschen
Sheets.Add.Name = "Test" 'Erstellt einen neuen Reiter
Range("7:7").Select
xlApp.ActiveWindow.FreezePanes = True


Funktioniert auch prima, wenn ich dann aber im zweiten Modul das andere Tab (Test2) ansteuer - siehe Code:

Dim xlApp As Excel.Application
Dim xlwrkbk As Excel.Workbook
Dim xlsheet As Excel.Worksheet
Sheets("Test2").Select
xlApp.Visible = True 'Excelblatt anzeigen
xlApp.DisplayAlerts = False ' Sicherheitsabfragen unterdrücken
xlsheet.Delete 'Tab löschen
Sheets.Add.Name = "Test2" 'Erstellt einen neuen Reiter
Range("7:7").Select
xlApp.ActiveWindow.FreezePanes = True


bekomme ich die Fehlermeldung:
Laufzeitfehler 91 in den Zeilen wo xlApp. vorkommt.
Objektvariable oder With-Blockvariable nicht festgelegt

Kann mir jemand bitte helfen und sagen was ich dort falsch mache?
Vielen Dank!
Titel: Re: Excel über Access steuern
Beitrag von: database am März 06, 2013, 15:18:42
Hallo,

hast du im VBE die Verweise auf Microsoft Excel gesetzt?
Titel: Re: Excel über Access steuern
Beitrag von: Ken am März 06, 2013, 15:21:47
Hallo,

hab ich, sonst würde der erste Tag nicht funktionieren.

Titel: Re: Excel über Access steuern
Beitrag von: database am März 06, 2013, 15:33:52
Hi,

hast du schon versucht, so wie im ersten Modul das Sheet Test2 zu aktivieren bevor du Aktionen darauf absetzt?

Set xlsheet = xlApp.Application.ActiveWorkbook.Sheets("Test2")
Titel: Re: Excel über Access steuern
Beitrag von: Ken am März 06, 2013, 15:37:38
Ja habe ich, kommt aber die gleiche Fehlermeldung :-(
Titel: Re: Excel über Access steuern
Beitrag von: database am März 06, 2013, 15:56:38
Hi,

du kannst dann noch Access mitteilen, welche Arbeitsmappe du meinst ...

Set xlwrkbk = xlApp.Application.ActiveWorkbook

und danach das Sheet bestimmen

Set xlsheet = xlwrkbk.Sheets("Test2")

Wobei mir noch auffällt, dass für das 2. Modul xlApp nicht instanziert ist.

du erzeugst im 2. Modul neue Objektvariabelen, die zwar gleich heißen wie die im ersten Modul aber keine Werte enthalten

allerdings bin ich dann mit meinem Latein für's Erste am Ende, da ich im Moment keine Möglichkeit habe das zu testen 
Titel: Re: Excel über Access steuern
Beitrag von: Ken am März 06, 2013, 19:08:55
Hallo,

erstmal vielen Dank, dass du mir überhaupt versucht hast zu helfen!

Habe aus einen anderen Forum (spez. für Excel) eine Lösung gefunden und die lautet so:

im 2.Code fehlt die Zuweisung der Mappe bzw. des Blattes an die Objektvariablen xlwrkbk und xlsheet - so funktioniert's :


    Dim xlApp As Excel.Application
     Dim xlwrkbk As Excel.Workbook
     Dim xlsheet As Excel.Worksheet
     
     Set xlApp = GetObject(, "Excel.Application")
     Set xlwrkbk = xlApp.ActiveWorkbook
     Set xlsheet = xlwrkbk.Sheets("Test2")
     
     xlApp.DisplayAlerts = False
     xlApp.Visible = True
     
     xlsheet.Delete
     Set xlsheet = xlwrkbk.Sheets.Add
     xlsheet.Name = "Test2"
     xlsheet.Range("7:7").Select
     xlApp.ActiveWindow.FreezePanes = True

     xlApp.DisplayAlerts = False


Vielen Dank!
Titel: Re: Excel über Access steuern
Beitrag von: database am März 07, 2013, 09:16:39
Hallo,

so habe ich das in meiner Antwort ja bereits dargestellt ...

Setze bitte den Thread in DEINEM ersten Beitrag auf 'gelöst'   

DANKE
Titel: Re: Excel über Access steuern
Beitrag von: Ken am März 07, 2013, 09:37:46
Hallo,

stimmt du hattest die Lösung...sorry hatte mich da etwas umständlich ausgedrückt  ;)
Diesen Beitrag hatte ich schon als gelöst gesetzt, habe ich noch einen offen?