Hallo lieber VBA-Helfer,
leider wurde das Häkchen unten auf grün gesetzt, obwohl ich noch Fragen hatte. Ich hoffe jemand kann mir helfen.
Da ich blutige Anfängerin bin, schaffe ich es nicht eine Schleife um mein Makro herum zu konzipieren. Das Makro befüllt ein PDF Formular aus einer Excel Zeile heraus (18 Spalten) und speichert das befüllte PDF Formular dann ab.
Nun möchte ich aber aus mehreren Excel Zeilen mit insgesamt 18 Daten, mehrere PDFs generieren. Sprich eine Zeile auslesen, PDF befüllen, speichern. Nächste Zeile auslesen, PDF befüllen, speichern...bis eine Leerzeile kommt.
Es wäre so toll, wenn ich nochmal Hilfe bekomme.
'Befüllen von Formularen
Sub PDF_Formular()
'Die Variablen Datei, Pfad und Name werden als String deklariert
Dim Datei As String, Pfad As String
Dim Name As String
Dim i As Integer 'Für Name hochzählen
i = 2
Do While Cells(i, 1) = " "
'PDF öffnen und füllen
Set AcroApp = CreateObject("AcroExch.App")
Set AvDoc = CreateObject("AcroExch.AVDoc")
'PDF öffnen
Datei = "C:\Users\bdornhecker\Documents\PDF befüllen\Formular.pdf" 'Pfad zur Datei muss angepasst werden
Pfad = "C:\Users\bdornhecker\Documents\PDF befüllen\Ausgefüllte Formulare\" 'neuer Pfad, unter der die ausgefüllte Datei gespeichert wird
Name = "PDF-Datei_ausgefüllt" + i 'Neuer Name der PDF-Datei
'Name = "PDF-Datei_ausgefüllt_1.pdf"
If AvDoc.Open(Datei, Name) Then
AcroApp.Show
Set PDDoc = AvDoc.GetPDDoc()
Set jso = PDDoc.GetJSObject
'Die Werte "HsNr", "OT" usw. müssen durch die entsprechenden Feldnamen ersetzt werden
'Hinter ".Value = " folgt der zu übergebende Wert, zB "= ActiveSheet.Range("A1").Value" etc.
jso.getField("Name Debtor").Value = ActiveSheet.Cells(i, 1).Value
jso.getField("Street and Number").Value = ActiveSheet.Cells(i, 2).Value
jso.getField("City").Value = ActiveSheet.Cells(i, 3).Value
jso.getField("Land").Value = ActiveSheet.Cells(i, 4).Value
jso.getField("Name Creditor").Value = ActiveSheet.Cells(i, 5).Value
jso.getField("Adress Creditor").Value = ActiveSheet.Cells(i, 6).Value
jso.getField("Type of activityreason for payment 1").Value = ActiveSheet.Cells(i, 7).Value
jso.getField("Type of activityreason for payment 2").Value = ActiveSheet.Cells(i, 8).Value
jso.getField("date of payment").Value = ActiveSheet.Cells(i, 9).Value
jso.getField("period of activity").Value = ActiveSheet.Cells(i, 10).Value
jso.getField("Euro").Value = ActiveSheet.Cells(i, 11).Value
jso.getField("Cent").Value = ActiveSheet.Cells(i, 12).Value
jso.getField("Euro_2").Value = ActiveSheet.Cells(i, 13).Value
jso.getField("Cent_2").Value = ActiveSheet.Cells(i, 14).Value
jso.getField("Euro_3").Value = ActiveSheet.Cells(i, 15).Value
jso.getField("Cent_3").Value = ActiveSheet.Cells(i, 16).Value
jso.getField("tax office").Value = ActiveSheet.Cells(i, 17).Value
jso.getField("tax number").Value = ActiveSheet.Cells(i, 18).Value
'Save changes to the PDF document
PDDoc.Save PDSaveFull, Pfad & Name
'Das stand vorher hier: PDDoc.Save PDSaveLinearized, Pfad & Name
'Alles schließen und leeren
PDDoc.Close
AvDoc.Close (True)
AcroApp.Hide
AcroApp.Exit
Set AcroApp = Nothing
Set AvDoc = Nothing
Set PDDoc = Nothing
Set jso = Nothing
Else
MsgBox "Dokument nicht gefunden!"
Set AcroApp = Nothing
Set AvDoc = Nothing
Set PDDoc = Nothing
Set jso = Nothing
End If
i = i + 1
Loop
End Sub
Könnt ihr mir helfen bei dem Bau der Schleife? Hier ist mein aktueller Code:
|