Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates. x

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
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
Top


Gehe zu:


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