Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: bhommi am Februar 14, 2017, 08:52:24

Titel: Aus Access heraus per VBA Excel auf Querformat stellen
Beitrag von: bhommi am Februar 14, 2017, 08:52:24
Hallo zusammen,

ich habe eine Access-Datei, die automatisch eine diverse Anzahl von Excel-Dateien erstellt, welche dann als Mailanhang weitergeleitet werden.

Aus Access heraus habe ich schon mittels VBA hinbekommen, dass Excel geöffnet und z.B. ein Autofilter gesetzt wird.
Das Seitenformat kann ich aber nicht auf Querformat umstellen. Hier fehlt mir gerade eine Idee bzw. die Umsetzung. Sofern es überhaupt möglich ist.

Ich nutzen folgenden Code:
' Excel öffnen
           
            Dim xlApp As Object, xlBook As Object, xlSheet As Object
            Set xlApp = CreateObject("Excel.Application")
            'Wenn es sichbar sein soll: True
            xlApp.Visible = False
            Set xlBook = xlApp.Workbooks.Open(dPfad & Mailanh)
            ' Spaltenbreite anpassen und speichern
            xlApp.Cells.Select
            xlApp.Cells.EntireColumn.AutoFit
            xlApp.Range("A1").Select
            xlApp.Selection.AutoFilter
           
            xlApp.ActiveWorkbook.Save
            ' Excel wieder schließen
            xlBook.Close False
            xlApp.Quit
            Set xlBook = Nothing


Innerhalb von Excel selbst könnte man für diese Aufgabe folgendes in VBA hinterlegen:
With ActiveSheet.PageSetup
        .Orientation = xlLandscape
    End With


Kann ich dies auch so abändern, dass es in meiner Routine in Access läuft?

Danke für eure Mithilfe!!

Liebe Grüße
Björn
Titel: Re: Aus Access heraus per VBA Excel auf Querformat stellen
Beitrag von: markusxy am Februar 14, 2017, 13:50:49
Solche Infos findest du am leichtesten im Objektkatalog, (Voraussetzung ist eine Verknüpfung zu Excel) oder in der Excel VBA Hilfe.

Die Eigenschaft ActiveSheet gibt es z.B. für Application, Workbook oder Window.
Also in deinem Fall
xlBook.ActiveSheet oder auch xlApp.ActiveSheet müssten funktionieren.

LG Markus

Titel: Re: Aus Access heraus per VBA Excel auf Querformat stellen
Beitrag von: bhommi am März 20, 2017, 15:36:44
Sorry, dass ich jetzt erst nochmal schreibe.
Danke für den Hinweis Markus, aber activesheet wusste ich ja schon, aber wie baue ich das nun in meine Access-Funktion ein?
Danke.
Titel: Re: Aus Access heraus per VBA Excel auf Querformat stellen
Beitrag von: dedidado am März 22, 2017, 13:25:19
ein ganz hilfreiches Szenario ist die Makroaufzeichnung in Excel.
Aufzeichnung starten, auf Querformat umstellen, Aufzeichnung beenden und im Makro den Code kopieren. Funktioniert natürlich für alles andere auch.
Vor den Code musst du nur noch das Excel-Objekt einfügen.
einfacher geht's nimmer  ;)
Titel: Re: Aus Access heraus per VBA Excel auf Querformat stellen
Beitrag von: bhommi am März 27, 2017, 15:28:14
Wenn's so einfach wäre...

Das habe ich ja alles gemacht...

Den passenden Code in Excel habe ich ja auch gefunden (siehe oben).
Aber wie muss ich den jetzt in meiner Access-VBA-Funktion einbauen?
Denn einfach so übernehmen geht nicht, dann bringt Access einen Fehlerhinweis.

Danke.


Beispielsweise:
xlApp.ActiveSheet.PageSetup.Orientation = xlLandscape
Dann kommt der Fehlerhinweis:
"Die Orientation-Eigenschaft des Page-Setups kann nicht festgelegt werden."
Titel: Re: Aus Access heraus per VBA Excel auf Querformat stellen
Beitrag von: bhommi am März 28, 2017, 09:18:35
Des Rätsels Lösung lautet:

xlApp.ActiveSheet.PageSetup.Orientation = 2