Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1412to1416
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

Information/Anweisung aus Array Einzelschritt

Information/Anweisung aus Array Einzelschritt
13.03.2015 12:45:40
Erich
Hallo
Als absoluter vba-Anfänger versuche ich aus einem xls mit n Tabellen eine bestimmte Anzahl als einzelne pdf's zu speichern. Grundsätzlich habe ich es mit Hilfe aller möglichen Foreneinträgen geschafft, wenn mich nicht noch zwei Dinge stolpern liessen.
1. Druckbereich zu definieren - die Anweisungen sind in der jeweiligen Tabelle in der Zelle B1 hinterlegt. Ich kriege es einfach nicht hin, dass es auch für den 2. Durchgang ff funktioniert.
2. Namensgebung der pdf's mit Zellbezug in der jeweiligen Tabelle --> Zelle B2. Auch hier wird es wohl in eine ähnliche Richtung gehen wie bei 1.
Der Code besteht aus den beiden obgenannten Schritten (p) für den Druckbereich und (i) für die pdf-Speicherung.
Bei (i) möchte ich den Teil & arrSheets(i) & durch den Zellbezug ersetzen.
Ich hoffe, es kann mir jemand weiterhelfen. Danke im Voraus.
Erich
Code:

Sub Druckbereich()
Application.ScreenUpdating = False
Dim arrSheets() As Variant
arrSheets = Array("1", "2", "3", "4", "5")
For p = LBound(arrSheets) To UBound(arrSheets)
Sheets(arrSheets(p)).PageSetup.PrintArea = "$D$4:$W$" & Range("$B$1")
Next p
For i = LBound(arrSheets) To UBound(arrSheets)
Sheets(arrSheets(i)).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & "Meldeformular" & "_" & arrSheets(i) & "_" & Format(Date, "MMM YYYY") _
_
& ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Next i
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Information/Anweisung aus Array Einzelschritt
13.03.2015 12:57:18
MCO
Hallo Erich!
Du verweist mit Range("B1") immer auf das aktive Blatt. Wenn der bereich aber im jeweils zu druckenden Blatt steht solltest du es wie folgt schreiben:

Sheets(arrSheets(p)).PageSetup.PrintArea = "$D$4:$W$" & Sheets(arrSheets(p)).Range("$B$1")
Warum gehst du die Sheets denn 2x durch? du kann doch den Druckbereich festlegen u. sofort drucken, oder?
Sub Druckbereich()
Application.ScreenUpdating = False
Dim arrSheets() As Variant
arrSheets = Array("1", "2", "3", "4", "5")
For p = LBound(arrSheets) To UBound(arrSheets)
With Sheets(arrSheets(p))'alles mit vorangestelltem Punkt bezieht sich hierauf bis "end  _
with"
.PageSetup.PrintArea = "$D$4:$W$" & .Range("$B$1")
.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\Meldeformular_" & arrSheets(p) & "_" _
& Format(Date, "MMM YYYY") & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With
Next p
End Sub
Gruß, MCO
PS.: Schade, im VBA-Editor sieht es richtig schick aus.

Anzeige
AW: Information/Anweisung aus Array Einzelschritt
13.03.2015 13:17:48
Erich
Hallo MCO
Besten Dank für deine Hilfe, es hat nun funktioniert.
Gruss, Erich

Was steht in der Vorschau über deiner AW, ...
14.03.2015 01:59:54
Luc:-?
…MCO?
Na!? Passe selbst an, sonst wird angepasst…! ;-]
Gruß, Luc :-?

AW: Was steht in der Vorschau über deiner AW, ...
16.03.2015 07:50:03
MCO
Hallo Luc :-?,
Ja, ein bissl hab ich mich auch geärgert. Das ist ein Fall von klassischer Überschneidung. Ich hab meine Antwort verfasst u. gepostet, während die "Doppelt"-Meldung reinkam.
Ich finde es aber ebenso verwerflich wie unfair, die Anfragen in Foren zu streuen, da dadurch Antworten und Feedback für andere verloren gehen.
Wenn ich einer "Doppelt"-Meldung begegne, lese ich gar nicht weiter. Auch mir ist die Zeit zu wertvoll dafür.
Gruß, MCO
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige