Microsoft Excel

Herbers Excel/VBA-Archiv

Makro Speichern Unter

Betrifft: Makro Speichern Unter von: Max
Geschrieben am: 24.09.2020 08:49:15

Hallo,
da ich mich leider mit VBA nicht auskenne und Makros soweit nur mittels Aufzeichnung erstelle, wollte ich fragen, ob mit jemand helfen kann ein Makro zu erstellen, damit meine Schaltfläche das tut was ich möchte?! :)

Zur Beschreibung der Datei:
Die Datei besteht aus 4 Tabellenblättern:
Am 1. Blatt findet die Dateieingabe statt (auch mittels Listen, welche die Daten von dem 4. Blatt holt);
Auf Blatt 2 & 3 werden vorgegebene Formulare dann beide mittels den Werten aus dem 1. Blatt befüllt...

Den Button Drucken (mittels Makro-Aufzeichnung) habe ich bereits erstellt und der funktioniert auch...
Der druckt Blatt 2 und 3 aus (die restlichen Dinge brauche ich nicht)...

So jetzt zur eigentlichen Frage..
Ich hätte nun auch gerne einen zusätzlichen Button, der die Blätter 2+3 ausdruckt - und zusätzlich in einem PDF abspeichert, wobei der Dateiname sein soll " ZVV_A4_20200810" das ganze weiters in einem vorgegebenen Pfad (wenn es möglich ist, möchte ich nicht, dass sich das Speicher-unter-Fenster öffnet... das ganze sollte alles automatisch bzw. im Hintergrund passieren...
also ein vorgegebener Text; einen Wert aus dem 1. Tabellenblatt und dem heutigen Datum...
Weiters wäre es hilfreich, wenn bspw. automatisch "_2" usw. angehängt wird, wenn man mehrere Dateien an einem Tag erstellt...

Ich hoffe ich hab mein "Problem" ausführlich beschrieben und jemand kann mir dazu helfen...

Lieben Dank vorweg... :)

Betrifft: Probiere es mal so...
von: Case
Geschrieben am: 24.09.2020 09:13:48

Hallo, :-)

... der Spur nach: ;-=
Option Explicit
Public Sub Main()
    Dim strTMP As String
    On Error GoTo Fin
    Application.ScreenUpdating = False
    strTMP = "ZVV_" & Tabelle1.Range("A4").Value & "_" & Format(Now, "DD_MM_YYYY_hh_mm_ss") & ". _
pdf"
    ThisWorkbook.Worksheets(Array(2, 3)).Copy
    With ActiveWorkbook
        .ExportAsFixedFormat 0, "C:\Temp\" & strTMP
        .Close False
    End With
Fin:
    Application.ScreenUpdating = True
End Sub
Servus
Case

Betrifft: AW: Probiere es mal so...
von: Max
Geschrieben am: 24.09.2020 09:56:24

Das ging ja schnell...
Danke für die Hilfe!
Ich probier es mal und melde mich nochmal :)

Betrifft: AW: Probiere es mal so...
von: Max
Geschrieben am: 24.09.2020 10:07:09

Hallo nochmal,
danke für deine Hilfe...
Excel bzw. VBA meldet den einen Fehler in der Zeile:

strTMP="ZVV_"&Tabelle1.Range("B13").Value&"_"&Format(Now,"YYYY_MM_DD")&". _
pdf ""

muss ich hier Werte umändern bzw. an meine Datei anpassen?

Danke und LG

Ach ja... kann ich von der "Druck"-Schaltfläche die Anweisung in dieses Makro auch noch dazufügen?
LG

Betrifft: Das liegt an der...
von: Case
Geschrieben am: 24.09.2020 10:10:16

Hallo, :-)

... Forensoftware. Hier mal mit Umbruch: ;-)
Option Explicit
Public Sub Main()
    Dim strTMP As String
    On Error GoTo Fin
    Application.ScreenUpdating = False
    strTMP = "ZVV_" & Tabelle1.Range("A4").Value & _
        "_" & Format(Now, "DD_MM_YYYY_hh_mm_ss") & ".pdf"
    ThisWorkbook.Worksheets(Array(2, 3)).Copy
    With ActiveWorkbook
        .ExportAsFixedFormat 0, "C:\Temp\" & strTMP
        .Close False
    End With
Fin:
    Application.ScreenUpdating = True
End Sub
"C:\Temp\" musst du natürlich noch anpassen. Abschließenden Backslash nicht vergessen.

Servus
Case

Betrifft: AW: Das liegt an der...
von: Max
Geschrieben am: 24.09.2020 10:38:41

Hi
DANKE!!!
Funktioniert soweit so gut...
eine letzt Frage habe ich noch...
Sub PDF_speichern()
'
' PDF_speichern Makro
'

'
    ActiveWorkbook.PrintOut From:=2, To:=3, Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
End Sub
Das wär mein Makro um das Dokument als PDF zu speichern - leider hab ich jetzt bemerkt, dass es auf den zuletzt verwendeten Drucker ankommt...
Was muss ich denn ändern, damit ich eine Schaltfläche erstelle mit "als PDF speichern unter"...?

Danke für die Hilfe!

Betrifft: Da habe ich deine...
von: Case
Geschrieben am: 24.09.2020 11:24:20

Hallo, :-)

... Frage nicht verstanden. Was möchtest Du genau machen? ;-)

Servus
Case

Betrifft: AW: Da habe ich deine...
von: Max
Geschrieben am: 24.09.2020 11:57:25

Ich habe unter dem Formular 3 Schaltflächen...
1. Formular löschen (funktioniert)
2. Als PDF speichern
3. Drucken
4. Drucken und Archivieren (das Makro, das ich schon von dir erhalten habe - also als PDF in bestimmtem Ordner speichern)

Ich hab jetzt gesehen, dass das Makro von PDF und Drucken das selbe ist - und je nachdem, welchen Drucker man zuletzt gewählt hat (Drucker oder Print2PDF) wird bei beiden Schaltflächen gewählt...
Also meine Frage - kann ich in dem Makro hinterlegen, welcher Drucker gewählt werden soll?

Bzw. beim 4. Makro - reicht es, wenn ich da einfach das Makro dann vom Drucken noch hinzufüge?

LG

Betrifft: Dann probiere mal...
von: Case
Geschrieben am: 24.09.2020 12:16:51

Hallo, :-)

... den Drucker einmalig aktivieren und im Direktfenster mittels ?ActivePrinter den Namen auszulesen.
Du erhältst dann so etwas wie - HP LaserJet 1220 auf Ne02: - das "auf NeXX:" kannst Du weglassen.

Dann geht sowas:
...PrintOut Copies:=1, Collate:=True, ActivePrinter:="Name des ausgelesenen Druckers"
Servus
Case

Betrifft: AW: Dann probiere mal...
von: Max
Geschrieben am: 24.09.2020 12:34:02

Danke
werd ich probieren :)

Betrifft: AW: Dann probiere mal...
von: Max
Geschrieben am: 24.09.2020 12:34:04

Danke
werd ich probieren :)

Beiträge aus dem Excel-Forum zum Thema "Makro Speichern Unter"