ich hoffe, ihr könnt mir weiterhelfen, denn ich sitze schon seit Tagen dran und bin kein Stück weitergekommen...
Ich habe hier zwei Arbeitsblätter, die Report und Einstellungen heißen. In Report gibt's eine bestimmte Zelle namens "Jahr" (z.B. 2015), die das Jahr vom Report darstellt. "Jahr" kann ein beliebiges Jahr sein und der Inhalt des Reports wird dementsprechend aktualisiert. Die Daten werden hier von einer Datenbank gezogen. In Einstellungen gibt es eine Tabelle "Liste", in der die Jahre eingegeben werden können, von denen man den Report ausdrucken möchte (z.B. 2015. 2016,...). Mit dem Code unten soll PDF-Reports von dem jeweiligen Jahr in "Liste" ausgedruckt werden.
Soweit funktioniert der Code fast. Leider nur fast, da die Schleife irgendwie ihre doppelte Arbeit macht. Am Ende bekommt man zwar drei Reports vom 2015, 2016 und 2017 ausgedruckt, was aber länger dauert, als es sein soll, denn bei zwei Einträgen (z.B. 2015, 2016) wiederholt sich die Schleife zweimal (=4 mal PDF drucken), bei drei Einträgen (2015, 2016 und 2017) dreimal (9 mal PDF drucken), usw.
Kann mir jemand sagen, woran es liegen könnte? :-(
Sub Drucken()
Dim Liste As Range
Dim Speicherpfad As String
Speicherpfad = Sheets("Pfad").Range("A1").Value
Call ScreenUpdating_OFF
For Each Liste In Range("C4:C104")
If Liste.Value "" Then
Range("Jahr").Select: ActiveCell.Value = Liste.Value
Application.Run "CalcvonDB"
ActiveSheet.PrintOut PrintToFile:=True, PrToFileName:=Speicherpfad & "\" & _
Dateiname_ohne_Endung & " " & Liste.Value & ".pdf"
End If
Next Liste
Call ScreenUpdating_ON
End Sub