Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

PDF-Druck | Herbers Excel-Forum


Betrifft: PDF-Druck von: RainerK
Geschrieben am: 20.02.2012 19:59:18

Hallo,

habe hier durch Mithilfe von Franz ein Druckmenu erstellt, mit welchem ich über D1-D2 die Auswahl der Blätter steuere.

Für die ausgewählten Blätter würde ich nun gerne einen Button anlegen, um ein PDF zu speichern.
Grundsätzlich ja kein kein Problem, habe den PDFCreator und das ADDin für Speichern unter (*.pdf).

Hätte dies allerdings vereinfacht und mit meinem Code für "Speichern unter" kombiniert.


    'Datei speichern unter ...
    Dim sPfad As String
    Dim sName As String
    Dim sDat As String
        
        sPfad = Range("Pfad").Text & Range("UVZ1").Text & "\"
        sName = Range("Dateiname").Text
        sDat = Format(Sheets("Inhaltsverzeichnis").Range("M4").Value, "yyyy-mm-dd")
        'sZeit = Format(Sheets("Tabelle1").Range("B3").Value, "hh:mm")
        sName = Application.GetSaveAsFilename _
                         (Title:="Speichern unter ...", _
                InitialFileName:=sPfad & sName & " - " & sDat & ".xls", _
                     FileFilter:="Microsoft Excel-Arbeitsmappe (*.xls), *.xls")
        
        Select Case sName
            Case False
                Exit Sub
            Case Else
                ThisWorkbook.SaveAs Filename:=sName
        End Select

Das Ändern von *.xls in *.pdf bewirkt zwar eine Speicherung als *.pdf, die Datei lässt sich jedoch nicht als PDF öffnen.

Beigefügt die Tabelle, in welcher ich im Modul2 die Aufzeichnungen "Speichern unter" und Druck über PDFCreator habe.

Wie kann ich diese Codes ändern, dass nur die Blätter gespeichert werden, welche in D2 ein "ja" stehen haben?
Geht das überhaupt?

Vielen Dank im Voraus

Rainer

https://www.herber.de/bbs/user/79003.xls

  

Betrifft: AW: PDF-Druck von: mumpel
Geschrieben am: 20.02.2012 20:20:21

Hallo!

Stichwort ExportAsFixedFormat (Foren und/oder VBA-Hilfe)

Gruß, René


  

Betrifft: Nachtrag/Beispiel von: mumpel
Geschrieben am: 20.02.2012 20:40:28

Sub Speichern_als_pdf()
Dim Blatt As Object
Dim strPath As String
Dim strName As String
Dim vntSheetArray() As Variant
Dim intSheetCounter As Integer
Dim bolOpenAfterPublish As Boolean

If MsgBox("Soll die Datei nach dem Erstellen angezeigt werden?", _
          vbYesNo, "Frage") = vbYes Then bolOpenAfterPublish = True

strPath = "C:\"
strName = "Druckauswahl der Arbeitsblätter.pdf"

intSheetCounter = 0

For Each Blatt In ThisWorkbook.Worksheets
    If Blatt.Range("D2").Value = "ja" Then
       Redim Preserve vntSheetArray(0 To intSheetCounter)
             vntSheetArray(intSheetCounter) = Blatt.Name
             intSheetCounter = intSheetCounter + 1
    End If
Next Blatt

Sheets(vntSheetArray).Copy

With ActiveWorkbook
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPath & strName, Quality:=xlQualityStandard, _
                         IncludeDocProperties:=True, IgnorePrintAreas:=False, _
                         OpenAfterPublish:=IIf(bolOpenAfterPublish, True, False)
    .Close savechanges:=False
End With
End Sub






VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann: VBA in HTML 2.0
Persönliche Version bearbeitet von mumpel




  

Betrifft: AW: Nachtrag/Beispiel von: RainerK
Geschrieben am: 20.02.2012 20:48:24

Hallo René,

danke für die schnelle Hilfe; habe ich gleich (erst einmal ohne Anpassung) zum Test eingebunden.

Der Code stoppt bei mir bei: Sheets(vntSheetArray).Copy

Gruß Rainer


  

Betrifft: AW: Nachtrag/Beispiel von: RainerK
Geschrieben am: 20.02.2012 20:53:38

Hallo René,

Komando zurück; bist ein Genie.

Hatte in der Testtabelle noch mit "ja" / "nein" gearbeitet und im Original mit TRUE / FALSE.
Da kann es ja nicht funktionieren.

GENIAL

Gruß und schönen Abend
Rainer


  

Betrifft: AW: Nachtrag/Beispiel von: RainerK
Geschrieben am: 22.02.2012 21:20:44

Hallo,

habe mir den Code von René nun in meine Anwendung eingebaut.

Nun habe ich jedoch ein Problem mit der Datenübername.

Habe mir nach der Zeile

  Sheets(vntSheetArray).Copy

noch folgende Variablen erzeugt:
  sName = Range("Dateiname").Text
  sDat = Format(Sheets("Daten").Range("M4").Value, "yyyy-mm-dd")
Da ich jedoch das Sheet "Daten" nicht mit ausdrucken bzw. in das PDF übernehmen möchte stoppt der Ablauf nun bei sDat ...

Gibt es eine Möglichkeit, die Variablen "sName" und "sDat" mit zu übernemen ohne dass ich das Sheet Daten mit übernehmen muss?

Gruß Rainer


  

Betrifft: AW: Nachtrag/Beispiel von: RainerK
Geschrieben am: 23.02.2012 12:36:52

Hallo,

habe eine Variante in Vebindung mit NOW und der InputBox genutzt.

Problem für mich insoweit geklärt.

Gruß Rainer