Hallo,
die Suchmaschinen verstehen mich nicht, ich lande immer auf Excelseiten....
Ich exportiere aus Access heraus Daten in eine Exceltabelle:
DoCmd.TransferSpreadsheet acExport, 10, "tmpQuery", ExcelDatNam, True, "Tabellenname"
Dann öffne ich die Tabelle und passe die Spaltenbreiten an.
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
If xlApp Is Nothing Then
Set xlApp = CreateObject("Excel.Application")
End If
On Error GoTo Fehler
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open(ExcelDatNam)
Set xlSheet = xlBook.Worksheets(ExcelTabNam)
With xlSheet
.Columns("A:K").AutoFit
.Rows("2:2").Select
.ActiveWindow.FreezePanes = True
End With
Der Code läuft zwar durch, die Spaltenbreite wird angepasst, aber das FreezePanes wird nicht ausgeführt.
Übersehe ich was oder ist das von Access aus nicht möglich?
Gruß
Doming
Edit: OK, der Code läuft nicht durch... kommt davon, wenn man die Fehlermeldungen abfängt
Bei FreezePanes kommt der Fehler 438 - Objekt unterstützt diese Eigenschaft oder Methode nicht
egal ob mit oder ohne ActiveWindow
Hallo Doming,
ich habe das so bei mir gelöst:
...
winCount = ExcelObj.Parent.Windows.Count()
ExcelObj.Parent.Windows(winCount).Visible = True
...
ExcelObj.Parent.Windows(winCount).FreezePanes = True
...
Mit .ActiveWindow in With-Schleifen habe ich immer wieder Probleme gehabt.
Vielleicht hilft Dir das ja so weiter.
Gruß
Michael
Hallo,
vielleicht hilft Dir das weiter:
https://www.statology.org/vba-freeze-panes/
ActiveWindow muß natürlich passen.
Gruß
Christian