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!
Hallo,
hast du im VBE die Verweise auf Microsoft Excel gesetzt?
Hallo,
hab ich, sonst würde der erste Tag nicht funktionieren.
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")
Ja habe ich, kommt aber die gleiche Fehlermeldung :-(
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
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!
Hallo,
so habe ich das in meiner Antwort ja bereits dargestellt ...
Setze bitte den Thread in DEINEM ersten Beitrag auf 'gelöst'
DANKE
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?