Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Dropdown in Verbindung mit einen pdf

VBA Dropdown in Verbindung mit einen pdf
08.02.2023 16:57:47
Anne
Hallo Zusammen, ich habe eine excel Datei mit der Rechnungen erstellt werden sollen. Über ein Dropdown Menü, kann der Rechnungsempfänger ausgewählt werden und die Rechnung erstellt werden. Alles über sverweis verknüpft. Ich habe bereits ein Makro "geschrieben", welche das drucken erleichtert (hier wird über zwei Zellen der Speicherort festgelegt und der Dateiname):

Sub print_pdf()
Dim DateiName As String
DateiName = Range("I7") & "\" & Range("I6") & ".pdf"
Sheets("invoice template GER").ExportAsFixedFormat xlTypePDF, Filename:=DateiName
End Sub
Aktuell muss aber im Dropdown Menü jeder einzelne Empfänger ausgewählt werden, was sehr aufwendig ist. Ist es möglich, dass das der Marko mit erledigt? Vielen Danke und liebe Grüße Anne
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Dropdown in Verbindung mit einen pdf
08.02.2023 17:01:52
ReginaR
Hi,
woher bekommt das DropDown denn seine Werte? Die stehen ja vermutlich in einem Zellbereich. Den bereich müsstest Du mit einer Schleife Zelle für Zelle abarbeiten und in die Schleife das Erstellen des pdf-Dokumentes einbetten.
Lade doch mal eine Beispieldatei hoch.
Gruß Regina
AW: VBA Dropdown in Verbindung mit einen pdf
08.02.2023 17:43:14
Anne
Es tut mir total leid, aber ich schaffe es nicht die Datei hier hochzuladen. :(
https://www.herber.de/bbs/user/157734.htm
Anzeige
AW: VBA Dropdown in Verbindung mit einen pdf
08.02.2023 18:37:46
JoWE
In Deinem Code-Schnipsel generierst Du den Dateinamen mit
DateiName = Range("I7") & "\" & Range("I6") & ".pdf"

Würde der nächste Dateinamen dann aus
Range("I9") & "\" & Range("I8") gebildet?
Und würde das dann in der Spalte I bis zur ersten leeren Zelle gelten?

Anzeige
AW: VBA Dropdown in Verbindung mit einen pdf
09.02.2023 08:57:00
Anne
Hallo JoWE, nein beide Zellen bleiben wie sie sind. Range("I7") --> ist der Dateipfad und Range("I6") --> ist der Dateiname. Dieser ist dynamisch und ändert sich auch durch die Veränderung im Dropdown Menü.
Userbild
Anzeige
AW: VBA Dropdown in Verbindung mit einen pdf
09.02.2023 09:17:09
Anne
Im Prinzip habe ich etwas ähnliches hier auch schon gefunden. Meine VBA Kenntnisse sind nur so schlecht dass ich das nicht adaptieren kann.
https://www.herber.de/forum/archiv/804to808/804239_Makro_dass_automatisch_aus_DropDown_Liste_waehlt.html
Dieser Makro druck die Seiten einzeln aus, aber ich würde gerne pdfs generieren. Ich weiß leider auch nicht was ich noch anpassen muss.
Anzeige
AW: VBA Dropdown in Verbindung mit einen pdf
09.02.2023 09:40:53
JoWE
wieder offen...
AW: VBA Dropdown in Verbindung mit einen pdf
09.02.2023 12:02:49
JoWE
Hallo Anne,
hier: https://www.extendoffice.com/documents/excel/4960-excel-print-drop-down-list.html
habe ich ein Makro gefunden, welches alle Elemente einer Dropdwonliste ausdrucken kann.
ich habe es auf Deinen Pfad und Dateinamen angepasst. Dabei bin ich davon ausgegangen,
dass sich Dein Dropdownfeld in der Tabelle1 (? sonst den Tabellennamen anpassen)
in der Zelle B9 befindet.
Sub pdf_Druck_alle_Werte_Dropdown()
    Dim xRg As Range
    Dim xCell As Range
    Dim xRgVList As Range
    Dim DateiName As String
    Set xRg = Worksheets("Tabelle1").Range("B9") 'ist das die Zelle mit Deinem Dropdown ?
    Set xRgVList = Evaluate(xRg.Validation.Formula1)
    For Each xCell In xRgVList
        xRg = xCell.Value
        DateiName = Sheets("Tabelle1").Range("I7") & "\" & xRg & ".pdf" 'Tabellenname anpassen
        Sheets("invoice template GER").ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=DateiName, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Next
End Sub
Gruß Jochen
Anzeige
AW: VBA Dropdown in Verbindung mit einen pdf
09.02.2023 14:08:04
Anne
Vielen Dank für deine Hilfe. Ich habe jetzt mit einem YouTube Video eine Lösung gefunden:
Sub print_pdf_NL()
'Declare the Variables
Dim ws As Worksheet
Dim rngID As Range
Dim rngListStart As Range
Dim rowsCount As Long
Dim i As Long
Dim DateiName As String
Dim tempPDFFilePath As String
'Stop the screen updating while running
Application.ScreenUpdating = False
'Reference Report Sheet
Set ws = ActiveWorkbook.Sheets("invoice template NL")
'Reference the Customer cell (dropdown)
Set rngID = ws.Range("E12")
'Reference the start of the Customer List
Set rngListStart = ws.Range("I10")
'Count the rows in the Customer List
rowsCount = rngListStart.CurrentRegion.Rows.Count - 1
For i = 1 To rowsCount
    
    'Change the current Customer
    rngID.Value = rngListStart.Offset(i - 1, 0).Value
        
    'Create the PDF
    DateiName = Range("I6") & "\" & Range("I5") & ".pdf"
    
    Sheets("invoice template NL").ExportAsFixedFormat xlTypePDF, _
        Filename:=DateiName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Next i
'Restart the screen updating
Application.ScreenUpdating = True
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Dropdown in Verbindung mit einem PDF


Schritt-für-Schritt-Anleitung

  1. Dropdown-Liste erstellen: Erstelle in Excel eine Dropdown-Liste, indem du die Daten eingibst, die im Dropdown angezeigt werden sollen. Verwende dazu die Datenvalidierung.

  2. Makro erstellen: Öffne den VBA-Editor (Alt + F11) und füge ein neues Modul ein.

  3. VBA-Code einfügen: Kopiere den folgenden VBA-Code in das Modul. Dieser Code generiert PDFs basierend auf den Werten im Dropdown:

    Sub pdf_Druck_alle_Werte_Dropdown()
        Dim xRg As Range
        Dim xCell As Range
        Dim xRgVList As Range
        Dim DateiName As String
        Set xRg = Worksheets("Tabelle1").Range("B9") 'Dropdown befindet sich in Zelle B9
        Set xRgVList = Evaluate(xRg.Validation.Formula1)
        For Each xCell In xRgVList
            xRg = xCell.Value
            DateiName = Sheets("Tabelle1").Range("I7") & "\" & xRg & ".pdf"
            Sheets("invoice template GER").ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=DateiName, Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
        Next
    End Sub
  4. Makro ausführen: Starte das Makro, um die PDFs zu generieren.


Häufige Fehler und Lösungen

  • Fehler: Dropdown liefert keine Werte
    Lösung: Stelle sicher, dass die Datenquelle für das Dropdown korrekt referenziert ist. Prüfe die Zelle, die die Validierung enthält.

  • Fehler: PDF wird nicht erstellt
    Lösung: Überprüfe den Datei-Pfad in Range("I7"). Achte darauf, dass der Pfad existiert und die Schreibberechtigungen vorhanden sind.


Alternative Methoden

  1. Dynamische Dropdown-Liste: Verwende eine dynamische Dropdown-Liste, die sich automatisch aktualisiert, wenn neue Daten hinzugefügt werden. Dies kann durch die Verwendung von Tabellen oder benannten Bereichen erreicht werden.

  2. Excel Makro drucken als PDF: Anstatt jedes Mal das Dropdown auszuwählen, kannst du ein Makro verwenden, das alle Werte in der Dropdown-Liste automatisch durchläuft und die entsprechenden PDF-Dateien erstellt.


Praktische Beispiele

  • Beispiel für eine Rechnung: Erstelle eine Rechnungsvorlage, die ein Dropdown für die Auswahl des Kunden beinhaltet. Das Makro generiert dann automatisch eine PDF-Rechnung für jeden Kunden in der Liste.

  • PDF mit Dropdown erstellen: Verwende die oben genannten Codes, um ein PDF-Formular zu generieren, das eine Dropdown-Liste enthält. So können Nutzer direkt im PDF die Auswahl treffen.


Tipps für Profis

  • Tastenkombination für Dropdown: Du kannst eine Tastenkombination für das Öffnen des Dropdown-Menüs einrichten, um die Benutzererfahrung zu verbessern. Nutze dazu die Eigenschaften der Zelle im VBA-Editor.

  • VBA UserForm für Dropdown: Erstelle eine UserForm in VBA, die eine Dropdown-Liste enthält. So kannst du benutzerdefinierte Eingaben und Ausgaben in einer ansprechenden Oberfläche gestalten.


FAQ: Häufige Fragen

1. Wie kann ich ein Dropdown in PDF übernehmen?
Verwende die Export-Funktion von Excel, um die Dropdown-Werte in ein PDF-Formular zu integrieren, indem du die entsprechenden Zellen referenzierst.

2. Was mache ich, wenn das PDF nicht geöffnet wird nach dem Erstellen?
Überprüfe den OpenAfterPublish-Parameter im VBA-Code. Setze ihn auf True, um das PDF nach dem Erstellen zu öffnen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige