Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Aus Access heraus per VBA Excel auf Querformat stellen

Begonnen von bhommi, Februar 14, 2017, 08:52:24

⏪ vorheriges - nächstes ⏩

bhommi

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
Sofern nicht anders angegeben gilt die Frage für Access 2019.
-----------------------------------------------------------------------------
Und hier noch der größte Tipp aller Zeiten:
"Wer an Jesus glaubt, der hat ewiges Leben."
Die Bibel, Johannes-Evangelium Kapitel 6 Vers 47
-----------------------------------------------------------------------------

markusxy

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


bhommi

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.
Sofern nicht anders angegeben gilt die Frage für Access 2019.
-----------------------------------------------------------------------------
Und hier noch der größte Tipp aller Zeiten:
"Wer an Jesus glaubt, der hat ewiges Leben."
Die Bibel, Johannes-Evangelium Kapitel 6 Vers 47
-----------------------------------------------------------------------------

dedidado

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  ;)

bhommi

#4
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."
Sofern nicht anders angegeben gilt die Frage für Access 2019.
-----------------------------------------------------------------------------
Und hier noch der größte Tipp aller Zeiten:
"Wer an Jesus glaubt, der hat ewiges Leben."
Die Bibel, Johannes-Evangelium Kapitel 6 Vers 47
-----------------------------------------------------------------------------

bhommi

Des Rätsels Lösung lautet:

xlApp.ActiveSheet.PageSetup.Orientation = 2
Sofern nicht anders angegeben gilt die Frage für Access 2019.
-----------------------------------------------------------------------------
Und hier noch der größte Tipp aller Zeiten:
"Wer an Jesus glaubt, der hat ewiges Leben."
Die Bibel, Johannes-Evangelium Kapitel 6 Vers 47
-----------------------------------------------------------------------------