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.

[Excel] PDF-Datei generieren - nach Datum Von - Bis...
#1
Moin, 19 

wie generiere ich eine PDF-Datei, bei der vorher nach Datum "Von Bis" - Angabe in Zellen - "gefiltert" werden soll: 21
Funktioniert erst in Excelversionen welche die Filter-Funktion kennen. Exclamation

Würde auch in alten Excelversionen laufen, wenn man die Formeln mit  Index, Vergleich, Aggregat aufbaut.

Code:
Option Explicit
'###################################################################################################
' Module    : Modul1
' Procedure : Main
' Author    : Case (Ralf Stolzenburg)
' Date      : 22.08.2023
' Purpose   : Bestimmte Zeilen sollen als PDF-Datei gespeichert werden
' Purpose   : Auswahl nach Datum - im Beispiel Von, Bis die Zellen H1 und H2
' Note      : Lauffähig nur in Excelversionen welche die Filter-Funktion beinhalten -  siehe...
' Note      :      <br/>[i]Dateiupload bitte im Forum! So geht es:<a href="thread-326.html"> Klick mich!</a>[/i]<br/>
' Purpose   : Veröffentlicht auf CEF "https://www.clever-excel-forum.de/index.php" am 22.08.2023
' Purpose   : In der Rubrik "Beispiele und Workshops" unter "mit VBA"
'###################################################################################################
Public Sub Main()
    ' Wenn ein Fehler auftritt gehe zu der angegebenen Sprungmarke
    On Error GoTo Fin
    ' Mit With beziehe ich mich auf ein bestimmtes Objekt - hier Tabelle2
    ' Tabelle2 ist der Codename des Tabellenblattes. Im VBA-Editor der Name VOR der Klammer
    ' Alles was sich auf dieses Objekt bezieht muss mit einem Punkt beginnen
    ' Das Objekt selber muss nicht mehr genannt werden
    With Tabelle2
        ' Immer, wenn man etwas mit dem "PageSetup" machen möchte, sollte man die
        ' "PrintCommunication" ausschalten, da die Kommunikation mit dem Drucker eine Bremse ist
        Application.PrintCommunication = False
        ' Frage - sollen die Gitternetzlinien gedruckt werden oder nicht...
        Select Case MsgBox("Sollen die Gitternetzlinien gedruckt werden?", _
            vbYesNo Or vbQuestion, "Gitternetzlinien!")
            Case vbYes
                .PageSetup.PrintGridlines = True
            Case vbNo
                .PageSetup.PrintGridlines = False
            End Select
        ' Zeile 1 und 2 werden als Überschrift auf jede Seite übernommen
        ' Siehe Seintenlayout - Seite einrichten - Drucktitel - Wiederholungszeilen oben
        ' Wenn das fest eingestellt ist, braucht man diese Codezeile nicht
        .PageSetup.PrintTitleRows = "$1:$2"
        ' Und wieder einschalten
        Application.PrintCommunication = True
        ' In Tabelle2 Zelle A3 werden über die Formel "FILTER(..." nur die Werte angezeigt
        ' welche den Parametern (Datum größer gleich H1 und Datum kleiner gleich H2) entsprechen
        ' Die Formel...
        ' =FILTER(Tabelle1!A3:E458;(Tabelle1!A3:A458>=Tabelle1!H1)*(Tabelle1!A3:A458<=Tabelle1!H2);"")
        .Range("A3").Formula2 = "=FILTER(Tabelle1!A3:E458," & _
            "(Tabelle1!A3:A458>=Tabelle1!H1)*(Tabelle1!A3:A458<=Tabelle1!H2),"""")"
        ' Die so generierten Zeilen werden als PDF im TEMP-Ordner gespeichert
        ' Es wird der Name des Workbooks genommen, dann Datum und Uhrzeit mit Sekunden angehangen
        .ExportAsFixedFormat 0, Environ("TEMP") & Application.PathSeparator & _
            Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".") - 1)) & _
            Format(Now, "_dd_mm_yyyy_hh_mm_ss")
        ' Die Druckvorschaulinien werden ausgeblendet
        .DisplayAutomaticPageBreaks = False
    End With
    ' Der Ordner "TEMP" wird maximiert angezeigt. Ist er schon offen, wird noch ein Fenster geöffnet
    Shell "Explorer.exe " & Environ("TEMP"), vbMaximizedFocus
Fin:
    ' Wenn ein Fehler auftritt gib ihn aus mit Fehlernummer und Beschreibung
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & " " & Err.Description
End Sub


Angehängte Dateien
.xlsb   PDF_Zeilen_nach_Angabe_Datum_in_PDF_mit_Wiederholungszeilen.xlsb (Größe: 39,42 KB / Downloads: 2)
________
Servus
Case
Antworten Top


Gehe zu:


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