Thema Datum  Von Nutzer Rating
Antwort
Rot Schleife um PDFs zu befüllen
27.08.2015 12:15:39 Bonnie
Solved

Ansicht des Beitrags:
Von:
Bonnie
Datum:
27.08.2015 12:15:39
Views:
3409
Rating: Antwort:
 Nein
Thema:
Schleife um PDFs zu befüllen

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:


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Schleife um PDFs zu befüllen
27.08.2015 12:15:39 Bonnie
Solved