Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Mehrere Blätter in separate PDFs drucken
#1
Hallo nochmal und vielen Dank für die vielen Beiträge. Hat mir schon oft weitergeholfen und man lernt nie aus. 

Habe jetzt ein Problem, wo ich so nicht weiterkomme.

Habe eine große Tabelle mit Stammdaten.
Meine Kollegen sollen jeweils einzelne Abschnitte aus dieser Tabelle erhalten. 

Meine Idee war jetzt, für jeden Kollegen ein einzelnes Blatt zu erstellen mit Verknüpfungen, so dass ich automatisch alle Daten für den Kollegen habe.
Das sollte auch so klappen. 
Jetzt will ich jedoch dieses Blatt für jeden Kollegen einzeln als PDF abspeichern. Alternativ auch als Excel. Aber in der PDF können sie weniger "rumbasteln".  19
Einzeln ist dies ja ohne Probleme möglich. Aber kann ich das auch irgendwie smarter lösen? Schön wäre auch, wenn er die Dateien dann gleich mit dem Namen des Blattes abspeichern kann. 

Alternativ könnte ich ja auch einzelne Excel Dateien erstellen, die sich dann die Daten aus der Stammexcel ziehen. 
Aber die müsste ich ja auch einzeln in PDFs umwandeln.  Huh

Vielleicht hat ja jemand eine Idee. 


Dann euch ein schönes Wochenende.  21
Antworten Top
#2
Hallo,

hier einmal ein Ansatz zum Ausbauen für Dich (getestet):

Code:
Sub PDF_EinzelBlattDruck()
Dim strName, Zaehler As String
Dim i, j, k As Long

i = 2
j = 40
k = 100 'Alternativ mit Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row ...
Zaehler = 100 'Namen anpassen
strName = "Stammdaten"

    For n = 1 To k
   
            Tabelle1.PageSetup.Orientation = 1
            Tabelle1.PageSetup.Zoom = False
            Tabelle1.PageSetup.FitToPagesWide = 1
            Tabelle1.PageSetup.FitToPagesTall = 1
           
            Tabelle1.Range("A" & i & ":" & "F" & j).ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:="C:\Users\BeispielUser\Desktop\Zielordner\" & strName & Zaehler & ".pdf", _
            Quality:=xlQualityStandard, OpenAfterPublish:=True
   
     i = i + 40 'Anzahl Zeilen bitte selbst anpassen
     j = j + 40 ' Anzahl Zeilen bitte selbst anpassen
     Zaehler = Zaehler + 1
     Next
   
End Sub
Im Beispiel werden beginnend von A2 bis F40 immer 40 Zeilen auf ein PDF gedruckt/ausgegeben. Der Dateinamen verändert sich von Blatt zu Blatt um einen Zähler.
Das Ganze geht im Beispiel bis zu Zeile 100 - bitte anpassen, sowie auch User Namen, Datei und Ordner usw.

Grüße

NobX
[-] Folgende(r) 1 Nutzer sagt Danke an NobX für diesen Beitrag:
  • Excelmachtspass
Antworten Top
#3
Hallo Nobx.

das probiere ich mal aus und melde mich nochmal. Vielen Dank schon einmal. :)
Antworten Top
#4
Hallo Matthias,

schau mal, ob dir das hilft:

http://www.kmbuss.de/Excel-CD/xls2pdf.htm
Überlegen macht überlegen
Gruss aus dem schönen Hunsrück
_______ Klaus-Martin _______
[-] Folgende(r) 1 Nutzer sagt Danke an Kl@us-M. für diesen Beitrag:
  • Excelmachtspass
Antworten Top
#5
Hallöchen,

Zitat:Dim strName, Zaehler As String
Dim i, j, k As Long

falls Du der Meinung bist, hier allen Variablen einer Zeile den jeweils gleichen Typ zuzuweisen, bist Du auf dem Holzweg Sad

korrekt wäre
Code:
Dim strName As Sting, Zaehler As String
Dim i As Long, j As Long, k As Long

oder in Kurzform
Code:
Dim strName$, Zaehler$
Dim i&, j&, k&

und hinsichtlich der Namen konsequenter
Code:
Dim strName As Sting, strZaehler As String
Dim i As Long, j As Long, k As Long

und wenn Du statt einzelner Buchstaben längere Bezeichnungen nimmst, schränkst Du die Treffer bei der Suche nach Variablen deutlich ein, z.B.
Code:
Dim strName As Sting, Zaehler As String
Dim iCnt As Long, jCnt As Long, kCnt As Long



Näheres zur Variablendeklaration und auch eine Möglichkeit, wo man nicht jede Variable einzeln einen Typ zuweisen muss, findest Du hier Thread-VBA-Nachhilfe-Variablendeklaration
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Excelmachtspass
Antworten Top
#6
(08.10.2022, 08:39)schauan schrieb:
Code:
Dim strName As Sting,

Ja - Sting. Seine Musik ist variabel, aber - ob die was mit VBA zu tun hat? 05
________
Servus
Case
Antworten Top
#7
Hallo Klaus. :)

Das hört sich nach genau dem an, was ich benötige.
Schau ich mir mal an. Danke. 


Der obere Code geht irgendwie nicht. Den muss ich mir notfalls nochmal genauer anschauen.
Antworten Top
#8
Hallo, 19 

in deinem Fall würde ich mit Namen und der Range.ExportAsFixedFormat-Methode arbeiten. Da brauchst du keine extra Tabellenblätter und nichts installieren. 21

Wenn du nicht klar kommst, dann lade eine aussagekräftige Beispielmappe hoch. Dodgy
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • Excelmachtspass
Antworten Top
#9
(10.10.2022, 08:37)Case schrieb: Hallo, 19 

in deinem Fall würde ich mit Namen und der Range.ExportAsFixedFormat-Methode arbeiten. Da brauchst du keine extra Tabellenblätter und nichts installieren. 21

Wenn du nicht klar kommst, dann lade eine aussagekräftige Beispielmappe hoch. Dodgy

Morgen.  19

Die Beispielmappe wäre super.
Antworten Top
#10
Hallo, 19 

eigentlich solltest du eine Beispielmappe (natürlich anonymisiert) hochladen. 21

Es kommt halt auf den Aufbau drauf an. Da kann man das schnell einbauen. Dodgy
________
Servus
Case
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste