Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1604to1608
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
Tabellenblätter einzeln als PDF speichern
02.02.2018 08:46:25
Alba
Hallo und guten Tag
ich bin neu hier und leider Anfänger!
Und Arbeite mit Excel 2016.
Ich versuche einzelne Blätter als PDF in auszuwählende Ordner zu speichern, mit bestimmten Dateiennamen aus einem Blatt was nicht als PDF erzeugt werden soll (da wären die Plätze der Daten für den Dateiennamen (D4, D3, D2, B14) wähle ich diese im Code aus erstellt er mir aber aus dem Blatt auch eine PDF. Genau gesagt sollte, nach Möglichkeit, der Dateiname so aussehen JJJJ_MM_TT_B14_D4_D3_D2_B14_Blattname.pdf.
Des Weiteren Funktioniert der Code soweit das die PDF Dateien erstellt werden aber anstatt die MsgBox aufgeht kommt leider der Laufzeitfehler 1004.
Userbild
Hoffe ich habe es richtig erklärt.
Danke für jede Hilfe

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 09:14:24
Sepp
Hallo Alba,
du hast 2 mal B14 im Dateinamen!

Private Sub CommandButton3_Click()
Dim strPath As String, strFilename As String
Dim objSh As Worksheet
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ThisWorkbook.Path
.Title = "PDF-Export Ordnerauswahl"
.ButtonName = "Erstellen"
.InitialView = msoFileDialogViewList
If .Show = -1 Then
strPath = .SelectedItems(1)
If Right(strPath, 1)  "\" Then strPath = strPath & "\"
End If
End With
If Len(strPath) Then
With Sheets("Vorgaben") 'Tabelle mit den Vorgaben - Anpassen!
strFilename = strPath & Format(Date, "yyyy_mm-dd_") & .Range("B14") & "_" & _
.Range("D4") & "_" & .Range("D3") & "_" & .Range("D2") & "_" & _
.Range("B14") & "_"
End With
For Each objSh In ThisWorkbook.Worksheets
Select Case objSh.Name
Case "Vorgaben", "Tabelle1"  'Tabellen die NICHT gedruckt werden - Anpassen!
Case Else
objSh.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strFilename & objSh.Name & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Select
Next
MsgBox "PDF-Dateien wurden erstellt!"
End If
End Sub
Gruß Sepp

Anzeige
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 10:52:23
Alba
Hallo Sepp
ich habe den Code jetzt soweit angepasst und anstelle: Format(Date, "yyyy_mm-dd_") das rein gemacht: Format(.Range("D10")) & "_"
Da ich selbst auch falsch gedacht habe es muss nämlich das "Datum" was im Protokoll steht verwendet werden. Jetzt wird mir aber immer noch der Laufzeitfehler 1004 Angezeigt und nicht die MsgBox und das Datum in der Tabelle (Format(.Range("D10")) & "_")ist im Format JJJJ.MM.TT und in der erzeugten PDF wird es zu TT.MM.JJJJ kann man das ändern?
Private Sub CommandButton3_Click()
Dim strPath As String, strFilename As String
Dim objSh As Worksheet
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ThisWorkbook.Path
.Title = "PDF-Export Ordnerauswahl"
.ButtonName = "Erstellen"
.InitialView = msoFileDialogViewList
If .Show = -1 Then
strPath = .SelectedItems(1)
If Right(strPath, 1)  "\" Then strPath = strPath & "\"
End If
End With
If Len(strPath) Then
With Sheets("Bauteil")
strFilename = strPath & Format(.Range("D10")) & "_" & .Range("B15") & "_" & _
.Range("D4") & "_" & .Range("D3") & "_" & .Range("D2") & "_"
End With
For Each objSh In ThisWorkbook.Worksheets
Select Case objSh.Name
Case "Vorgaben", "Bauteil"
Case Else
objSh.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strFilename & objSh.Name & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Select
Next
MsgBox "PDF-Dateien wurden erstellt!"
End If
End Sub

Anzeige
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 11:13:50
Sepp
Hallo Alba,
Private Sub CommandButton3_Click()
  Dim strPath As String, strFilename As String
  Dim objSh As Worksheet

  With Application.FileDialog(msoFileDialogFolderPicker)
    .InitialFileName = ThisWorkbook.Path
    .Title = "PDF-Export Ordnerauswahl"
    .ButtonName = "Erstellen"
    .InitialView = msoFileDialogViewList
    If .Show = -1 Then
      strPath = .SelectedItems(1)
      If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
    End If
  End With

  If Len(strPath) Then
    With Sheets("Bauteil")
      strFilename = strPath & .Range("D10").Text & "_" & .Range("B15") & "_" & _
        .Range("D4") & "_" & .Range("D3") & "_" & .Range("D2") & "_"
    End With

    For Each objSh In ThisWorkbook.Worksheets
      Select Case objSh.Name
        Case "Vorgaben", "Bauteil"
        Case Else
          objSh.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=strFilename & objSh.Name & ".pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
      End Select
    Next
    MsgBox "PDF-Dateien wurden erstellt!"
  End If
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

also bei mir läuft der Code ohne Probleme! Hast du in D2:D4 oder B15 Text stehen, der ungültige Zeichen im Bezug auf den Dateinamen enthält?
Gruß Sepp

Anzeige
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 12:06:42
Alba
Also der Dateiname wird auch richtig geschrieben und die PDF auch erzeugt nur dann geht es nicht weiter also es kommt nur das Fenster mit dem "Laufzeitfehler" nicht das "PDF-Dateien wurden erstellt!".
Kann es daran liegen das ich Excel 2016 habe?
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 12:14:18
Sepp
Hallo Alba,
und was wird im Code markiert? Ich habe auch xl2016.
Gruß Sepp

AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 12:36:34
Alba
Dieser Teil ist dann Gelb markiert!
 objSh.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strFilename & objSh.Name & "-" & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Anzeige
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 12:52:17
Sepp
Hallo Alba,
läuft tadellos!
Hast du vollen Zugriff auf den Speicherpfad?
Gruß Sepp

AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 12:41:12
Alba
Wo wir gerade dabei sind ist es möglich an der Stelle (siehe unten) sich noch auf die Zelle "D14" zu verweisen?
 objSh.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strFilename & objSh.Name & "-"Ist es hier möglich noch einen Wert aus " _
D14" einzufügen? & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Anzeige
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 12:54:52
Sepp
Hallo Alba,
B14 aus dem Tabellenblatt das gedruckt wird?
Dann so.
           objSh.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=strFilename & objSh.Name & "-" & objSh.Range("D14") & ".pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

Gruß Sepp

Anzeige
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 14:03:11
Alba
Hallo Sepp,
ist komisch bin zwar am Firmen Rechner aber auf das Laufwerk C wo ich Speicher habe ich vollen Zugriff!
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 14:04:34
Alba
Hallo Sepp,
Jetzt wird es leider noch Komplizierter beim Tabellenblatt UT ist es "D14" aber beim andern Blatt (MT) ist es "V40" geht das auch?
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 14:06:03
Alba
Hallo Sepp,
kann es vielleicht am PDF-Programm liegen? Habe "Adobe Acrobat DC".
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 14:45:42
Sepp
Hallo Alba,
das PDF-Programm ist egal, es wird direkt von Excel eine PDF erstellt, ohne irgend ein Fremdprogramm.
Direkt auf "C.\" kann man normalerweise nicht speichern!
Bezüglich des Dateinamens musst du schon präziser werden! Welche Zellen von welchem Blatt sollen wo im Namen stehen?
Bei den ständigen Änderungen blickt ja keiner mehr durch!
Gruß Sepp

Anzeige
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 17:29:24
Alba
Also ich hab immer zum testen auf Desktop gespeichert. Hab jetzt auch auf meinen Privat Laptop es versucht aber immer kommt Laufzeitfehler.
Der Dateiname sollte so aussehen:
Datum aus "D10" JJJJ.MM.TT_"B15"_"D4"_"D3"_"D2"_ (bis hier alles aus Ballt1 (Bauteil) dann die jeweiligen Blatt Namen der Blätter (MT, UT)-danach jeweils für das MT Blatt den Wert aus "Z42" und für UT Blatt aus "V40" hoffe man versteht es.
Danke für deine gute Hilfe
Wenn es einfacher wäre könnte ich die Tabelle auch per Email schicken.
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 17:39:22
Sepp
Hallo Alba,
Modul Modul2
Option Explicit 
 
Private Sub CommandButton3_Click() 
  Dim strPath As String, strFilename As String, strName2 As String 
  Dim objSh As Worksheet 
 
  With Application.FileDialog(msoFileDialogFolderPicker) 
    .InitialFileName = ThisWorkbook.Path 
    .Title = "PDF-Export Ordnerauswahl" 
    .ButtonName = "Erstellen" 
    .InitialView = msoFileDialogViewList 
    If .Show = -1 Then 
      strPath = .SelectedItems(1) 
      If Right(strPath, 1) <> "\" Then strPath = strPath & "\" 
    End If 
  End With 
 
  If Len(strPath) Then 
    With Sheets("Bauteil") 
      strFilename = strPath & .Range("D10").Text & "_" & .Range("B15") & "_" & _
        .Range("D4") & "_" & .Range("D3") & "_" & .Range("D2") & "_" 
    End With 
 
    For Each objSh In ThisWorkbook.Worksheets 
      Select Case objSh.Name 
        Case "Vorgaben", "Bauteil" 
        Case Else 
          If objSh.Name = "MT" Then strName2 = objSh.Range("Z42") 
          If objSh.Name = "UT" Then strName2 = objSh.Range("V40") 
          objSh.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=strFilename & objSh.Name & strName2 & ".pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False 
      End Select 
    Next 
    MsgBox "PDF-Dateien wurden erstellt!" 
  End If 
End Sub 
 
 

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

Zum Laufzeitfehler fällt mir nichts mehr ein, dazu müsste ich deine Datei sehen.
Gruß Sepp

Anzeige
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 17:58:00
Alba
Hallo Sepp
Super der Name wird so erstellt wie ich ihn haben will!
Wegen den Laufzeitfehler, könnte ich dir die Datei wie gesagt per Email schicken.
Finde ich deine Email Adresse irgendwo hier?
AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 18:01:40
Sepp
Hallo Alba,
poste deine Mailadresse, dann schreib ich dir.
Gruß Sepp

AW: Tabellenblätter einzeln als PDF speichern
02.02.2018 21:48:36
Alba
Hallo Sepp
Meine Email Adresse ist
alba0782@yahoo.de
Besten Dank für alles!
Mailadresse funktioniert nicht! o.T.
02.02.2018 22:24:44
Sepp
Gruß Sepp

Anzeige
AW: Mailadresse funktioniert nicht! o.T.
03.02.2018 22:32:47
Alba
Hallo Sepp
Sorry das war alba0782@yahoo.com

225 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige