Thema Datum  Von Nutzer Rating
Antwort
Rot Dateipfad als Variable
02.09.2015 11:27:10 Bonnie
NotSolved
02.09.2015 17:38:35 BigBen
NotSolved
02.09.2015 17:47:34 BigBen
NotSolved
02.09.2015 18:06:20 Gast62361
NotSolved

Ansicht des Beitrags:
Von:
Bonnie
Datum:
02.09.2015 11:27:10
Views:
1423
Rating: Antwort:
  Ja
Thema:
Dateipfad als Variable

Einen schönen Mittag,

ich habe ein Makro programmiert, welches eine PDF Vorlage (Vorlage.pdf) öffnet, dort Daten aus einer Excelzeile einspielt und es in einem bestimmten Ordner wieder abspeichert. Das Makro läuft alle Zeilen in Excel durch und erstellt via Schleife so viele pdfs.

Nun habe ich im Code angegeben, welche Pfade relevant sind, möchte aber, dass es auch auf anderen Computern nutzbar ist. Sobald man das Makro starten, soll also eine Abfragebox kommen mit:

* Wo liegt die Vorlagedatei ab?

* Wohin sollen die ausgefüllten PDFs abgespeichert werden?

Kann mir jemand helfen, wie ich meinen Code umschreiben muss? Es wäre so super!

Liebe Grüße

BOnnie



Sub PDF_Formular()
 
'Die Variablen Datei, Pfad und Name werden als String deklariert
Dim Datei As String, Pfad As String, Name As String

'Schleife zum hochzählen der Zeilen, sowie Name der abgespeicherten .pdf Dateien
Dim i As Integer
For i = 2 To Cells(Rows.Count, 5).End(xlUp).Row
 
'PDF öffnen und füllen
Set AcroApp = CreateObject("AcroExch.App")
Set AvDoc = CreateObject("AcroExch.AVDoc")

'PDF öffnen
Datei = "C:\Users\Documents\Vorlage.pdf" 'Pfad zur Datei muss angepasst werden
Pfad = "C:\Users\Ausgefüllte Formulare\" 'neuer Pfad, unter der die ausgefüllte Datei gespeichert wird
Name = "PDF-Datei_ausgefüllt_" & i & ".pdf" 'Neuer Name der PDF-Datei
 
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.
 'CStr(Cells(i, sp(p)).Value)
jso.getField("Name Debtor").Value = ActiveSheet.Cells(5, 3).Value
 jso.getField("Street and Number").Value = ActiveSheet.Cells(6, 3).Value
 jso.getField("City").Value = ActiveSheet.Cells(7, 3).Value
 jso.getField("Land").Value = ActiveSheet.Cells(8, 3).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(10, 3).Value
    jso.getField("Type of activityreason for payment 2").Value = ActiveSheet.Cells(11, 3).Value
     jso.getField("date of payment").Value = ActiveSheet.Cells(i, 7).Value
      jso.getField("period of activity").Value = ActiveSheet.Cells(i, 8).Value
       jso.getField("Euro").Value = CStr(Cells(i, 13).Value)
        jso.getField("Cent").Value = CStr(Cells(i, 14).Text)
         jso.getField("Euro_2").Value = CStr(Cells(i, 15).Value)
          jso.getField("Cent_2").Value = CStr(Cells(i, 16).Text)
           jso.getField("Euro_3").Value = CStr(Cells(i, 17).Value)
            jso.getField("Cent_3").Value = CStr(Cells(i, 18).Text)
             jso.getField("tax office").Value = ActiveSheet.Cells(13, 3).Value
              jso.getField("tax number").Value = ActiveSheet.Cells(14, 3).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

Next i
End Sub

'Bereichspasswort: Montag

 


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 Dateipfad als Variable
02.09.2015 11:27:10 Bonnie
NotSolved
02.09.2015 17:38:35 BigBen
NotSolved
02.09.2015 17:47:34 BigBen
NotSolved
02.09.2015 18:06:20 Gast62361
NotSolved