Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1468to1472
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro PDF-Datei erstellen + Name/Blätter aus Zelle

Makro PDF-Datei erstellen + Name/Blätter aus Zelle
20.01.2016 15:14:17
Chris
Hallo zusammen,
ich habe ein kleines Makro-Problem. Ich möchte einen mühsamen und manuellen Schritt automatisieren. Habe es auch geschafft, nur habe ich die Makros so geschrieben, dass sie unflexibel sind, d.h. wenn sich eine Änderung ergibt, muss das im Makrocode angepasst werden.
Nun ist meine Idee, dass der Makro auf ein Tabellenblatt zugreift, und sich da die Informationen holt. Das heißt, der Makro erstellt eine PDF-Datei auf Knopfdruck. Der zu verwendende Dateiname wird ausgelesen aus einer Zelle und die zu markierenden Tabellenblätter auch. Nachdem er die erste Datei erstellt hat, folgt die nächste... Speicherpfad sollte immer die sein, in dem sich die Excel-Datei befindet.
Somit kann die eine Tabelle namens "Makro" gepflegt werden und der Makrocode funktioniert eigentlich immer...
Hier eine Beispieldatei:
https://www.herber.de/bbs/user/102912.xlsx
Vielen Dank für eure Hilfe!!!
Grüße
Chris

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro PDF-Datei erstellen + Name/Blätter aus Zelle
21.01.2016 10:59:18
fcs
Hallo Chris,
das könnte man evtl. wie folgt lösen.
Die zu speichernde PDF-Variante muss vor dem Start des Makros in Spalte A selektiert werden.
Gruß
Franz
'Zu speichernde PDF Variante wird aus aktiver Zelle in Spalte A ausgelesen
Sub Make_PDF()
Dim wksMakro As Worksheet
Dim strPDF As String
Dim rngVariante As Range
Set rngVariante = ActiveCell
Dim varSheets(), Zelle As Range, intSheet As Integer
Set wksMakro = ActiveSheet
If wksMakro.Name  "Makro" Then
MsgBox "Makro darf nur gestartet werden, wenn Blatt ""Makro"" aktiv ist!", _
vbOKOnly, "Speichern PDF"
Else
'Prüfen, ob PDF-Variante in Spalte A gewählt wurde
If rngVariante.Cells.Count = 1 And rngVariante.Column = 1 And rngVariante  "" Then
Select Case rngVariante.Row
Case Is >= 4
If MsgBox("Variante """ & rngVariante.Text & """ als PDF speichern?", _
vbQuestion + vbOKCancel, "PDF erstellen") = vbOK Then
'Name der PDF-Datei
strPDF = ThisWorkbook.Path & Application.PathSeparator & rngVariante.Text & ".pdf"
'Blattnamen zur Variante in Datenarray schreiben
With wksMakro
For Each Zelle In .Range(rngVariante.Offset(0, 1), .Cells(rngVariante.Row, .Columns. _
Count).End(xlToLeft)).Cells
If Zelle.Text  "" Then
intSheet = intSheet + 1
ReDim Preserve varSheets(1 To intSheet)
varSheets(intSheet) = Zelle.Text
End If
Next
End With
If intSheet > 0 Then
'PDF speichern
ActiveWorkbook.Sheets(varSheets).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strPDF, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Erase varSheets
End If
Sheets("Makro").Select
End If
Case Else
End Select
Else
MsgBox "Bitte Zelle der zu speichernde Variante in Spalte A vor dem Start des Makros auswä _
hlen!", _
vbOKOnly, "Speichern PDF"
End If
End If
End Sub

Anzeige
AW: Feinheiten...
21.01.2016 12:08:12
Chris
Hallo Franz,
hervorragende Arbeit. Klappt prima! Jetzt noch eine Feinheit. Mein Wunsch wäre es noch, dass
- die erste Meldung muss eigentlich nicht angezeigt werden, also man soll einfach auf ein Knopf drucken und es soll die Datei erstellen.
- wenn möglich, soll er die ganze Liste automatisch abarbeiten, also in dem Beispiel muss ich ja jetzt RE1 anklicken und den Makro starten, dann RE2 und Makro starten usw. Am liebsten wäre es mir, dass ich von mir aus die Zelle "RE 1" aktiviere und dann das Makro anschmeise und die Liste abarbeitet.
Ist das möglich?
Danke für die Hilfe !!
Grüße
Chris

Anzeige
AW: Feinheiten...
21.01.2016 13:57:57
fcs
Hallo Christ,
wenn alle Zellen mit Inhalt ab Zeile 4 abgearbeitet werden sollen, dann kann man es wie folgt lösen.
Gruß
Franz
Sub Make_PDF_V1()
Dim wksMakro As Worksheet
Dim strPDF As String
Dim rngVariante As Range
Dim varSheets(), Zelle As Range, intSheet As Integer, Zeile As Long
Set wksMakro = ActiveWorkbook.Worksheets("Makro")
'  If MsgBox("PDF-Dateien speichern?", vbQuestion + vbOKCancel, "PDF erstellen") = vbOK Then
With wksMakro
For Zeile = 4 To .Cells(.Rows.Count, 1).End(xlUp).Row
intSheet = 0
Set rngVariante = .Cells(Zeile, 1)
'Name der PDF-Datei
strPDF = ThisWorkbook.Path & Application.PathSeparator & rngVariante.Text & ".pdf"
'Blattnamen zur Variante in Datenarray schreiben
For Each Zelle In .Range(rngVariante.Offset(0, 1), .Cells(rngVariante.Row, _
.Columns.Count).End(xlToLeft)).Cells
If Zelle.Text  "" Then
intSheet = intSheet + 1
ReDim Preserve varSheets(1 To intSheet)
varSheets(intSheet) = Zelle.Text
End If
Next
If intSheet > 0 Then
'PDF speichern
ActiveWorkbook.Sheets(varSheets).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strPDF, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Erase varSheets
End If
Sheets("Makro").Select
Next Zeile
End With
'  End If
End Sub

Anzeige
AW: Feinheiten...
21.01.2016 14:24:03
Chris
Klasse !!! Es tut was es soll :-) Super Arbeit!! Danke Danke Danke!!

322 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige