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.

VBA - An bestehende pdf anhängen
#11
Hallöchen,

dann mal nur ein Tipp - den ständigen Wechsel zwischen den Blättern zwecks kopieren und einfügen kannst Du Dir sparen - im Prinzip so:

Sheets("Tabelle1").Range("A1").Copy Sheets("Tabelle2").Range("A1")
.      \\\|///      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:
  • Couch81
Antworten Top
#12
Moin!
Die gewünschte Manöverkritik!
Eine neue Datei zunächst als .xlsx zu speichern, um sie später zu löschen, ist irgendwie kontraproduktiv. ;)
Du hast keinerlei Fehlerbehandlung, Du gehst davon aus, dass
  • der Speicherpfad existiert
  • die Workbooks geöffnet sind und das jeweilige Blatt existiert.
  • Actvate ist hier nicht nur überflüssig, sondern verlangsam die Ausführung enorm

Ich verfolge einen anderen Ansatz:
Ich erstelle das Verzeichnis, falls noch nicht existent,
benutze eine With-Klammer für das neue Workbook,
prüfe per Select Case den Namen der geöffneten Workbooks
kopiere das jeweilige erste Blatt in die neue Mappe
exportiere mit den Defaults.

Im Endeffekt macht mein Code nix anderes als Deiner, geht aber eher als Programm durch, da der DAU hier keine Fehler machen kann.


Modul Modul1
Option Explicit 
Private Declare Function MakePath& Lib "imagehlp.dll" Alias _
       "MakeSureDirectoryPathExists" (ByVal sPath$) 
 
Sub RPP() 
Dim WKB As Workbook, strPath$ 
strPath = Environ("UserProfile") & "\Desktop\Testdateien\pdf\" 
'prüft, ob Pfad existiert und erstellt ihn bei Bedarf 
MakePath strPath 
'erstellt neue Mappe mit nur einem Sheet 
With Workbooks.Add(xlWBATWorksheet) 
  'Schleife über alle geöffneten Workbooks 
  For Each WKB In Application.Workbooks 
    Select Case WKB.Name 
      'Außer neuem Workbook und Personal.xlsb 
      Case .Name, "PERSONAL.XLSB" 
        'mache nix! 
      Case Else 
        'jeweils das linke Blatt in neue Mappe kopieren 
        WKB.Worksheets(1).UsedRange.Copy .Sheets.Add.Cells(1) 
    End Select 
  Next 
  'als PDF mit Zeitstempel speichern 
  .ExportAsFixedFormat xlTypePDF, _
    strPath & "Sammelblatt" & Format(Now, "yyyymmdd_hhmmss") 
  'ohne Speichern schließen 
  .Close False 
End With 
End Sub 


Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Couch81
Antworten Top


Gehe zu:


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