Excel TableStyle zuweisen über MS Access

16/07/2012 - 17:39 von Kai Apel (Berlin) | Report spam
Liebe NG,

Ich exportieren den Inhalt diverser Ufo in eine Exceldatei in verschiedene Excelsheets.

Dim rs As DAO.Recordset
Dim xlApp As Object, xlWB As Object, xlSheet As Object, xlRange As Object, strSaveAsFilePath
Dim I As Integer

'Exceldefinition
Set xlApp = CreateObject("Excel.application")
xlApp.Visible = False
xlApp.DisplayAlerts = False
Set xlWB = xlApp.Workbooks.Open("C:\testfile.xlsx")

'Übergabe Ufo
Set rs = Me!Ufoname.Form.RecordsetClone
Set xlSheet = xlWB.Sheets.Add
xlSheet.Name = "UfoName"
With xlApp
.Worksheets(1).Activate
.Worksheets("UfoName").Range("a1").Select
'das Ufo durchlaufen, ob die Spaltenbezeichner zu erhalten
For I = 0 To rs.Fields.Count - 1
'Set ctl = Me.UfoName.Controls(i)
Set Ctl = Nothing
For Each Ctl In Me.UfoName.Form.Controls
If Ctl.ControlType = acLabel And Ctl.Parent.Name = rs(I).Name Then
Captions = Ctl.Caption
End If
Next Ctl
.Cells(1, I + 1) = Replace(Captions, ":", "")
Next I
.Range("A2").Select
'UfoInhalt in Excelworksheet kopieren
.Selection.CopyFromRecordset rs
End With

'formatieren und speichern
'Excel-Sheet formatieren Headline
Set xlRange = xlSheet.Rows(1)
xlRange.Font.Bold = True
xlRange.Font.Size = 12
xlRange.Font.Name = "Arial"
xlRange.HorizontalAlignment = xlCenter

'autofit and format for the rest
Set xlRange = xlSheet.Range("A2:Z1000")
xlRange.Font.Bold = False
xlRange.Font.Size = 12
xlRange.Font.Name = "Arial"
xlRange.HorizontalAlignment = xlLeft
xlSheet.Cells.EntireColumn.AutoFit

'freeze the pane so the header row doesn't scroll
xlSheet.Activate
xlSheet.Range("A2", "A2").Select
xlApp.ActiveWindow.FreezePanes = True

xlWB.Save



Im Excelmakro lautet der Code: ActiveSheet.ListObjects("Tabelle2").TableStyle = "TableStyleMedium2"

Wenn ich das jetzt vor dem Save schreibe:

xlWB.ListObjects("UfoName").TableStyle = "TableStyleMedium2"
xlWB.Save

erhalte ich Fehlernummer 438 "Objekt unterstützt Eigenschaft oder Methode nicht". Jemand eine Idee, wie ich dem Sheet die Vorlage zuweise?

Vielen Dank

K.

erhalte ich Fehlernummer
 

Lesen sie die antworten

#1 Karl Donaubauer
16/07/2012 - 17:57 | Warnen spam
Kai Apel (Berlin) wrote:
...
Dim xlApp As Object, xlWB As Object, xlSheet As Object,
...
Im Excelmakro lautet der Code:
ActiveSheet.ListObjects("Tabelle2").TableStyle = "TableStyleMedium2"

Wenn ich das jetzt vor dem Save schreibe:

xlWB.ListObjects("UfoName").TableStyle = "TableStyleMedium2"
xlWB.Save

erhalte ich Fehlernummer 438 "Objekt unterstützt Eigenschaft oder
Methode nicht". Jemand eine Idee, wie ich dem Sheet die Vorlage
zuweise?



Nur so auf den ersten Blick losgeraten:

Im Excelmakro machst du das für ActiveSheet, in deinem Versuch
für ein WorkBook, oder? ListObjects liegen hierarchiemàßig in
Worksheets, also vielleicht müsste es heißen:

xlSheet.ListObjects("UfoName").TableStyle oder
xlApp.Worksheets("UfoName").ListObjects("UfoName").TableStyle
Servus
Karl
*********
Access-FAQ: http://www.donkarl.com

Ähnliche fragen