Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1744to1748
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Hilfe beim ändern eines VBA Skriptes
13.03.2020 20:18:19
Maik
Guten Tag ich habe zwar schon einen Beitrag aufgemacht aber vielleicht hat der Betreff die meisten abgeschreckt.
Es geht hierbei um die Erstellung einer fdf Datei die ich aus dem Internet habe.
Ich habe das Script schon soweit angepasst das es ANSI Codiert ist und überhaupt läuft.
Mir geht es jetzt um folgendes.
Ist es möglich das dort eine schleife läuft?
Ich möchte nicht fest Item1 bis Item40 schreiben, sondern dafür den Inhalt von A1 und dann der Reihe solange folgen bis kein wert mehr da ist?
Für J soll er das gleiche machen. Jetzt ist es ja aus der Spalte A1 bis A40 und ich möchte es aus der Reihe A2 bis kein wert mehr da ist.
Dann noch das er mich nicht nach dem Speicherort fragt sondern Die FDF in dem Ordner abgelegt wird in der auch die Excel liegt. Wenn das nicht geht dann eine Zeile einsetzen in der ich den Speicherpfad schreiben muss.
Ach so die Datei soll jedes mal ohne angaben überschrieben werden.
Ich habe eine Excel-Datei angehängt weil er einen großen Teil des Scriptes löscht wenn ich es hier rein kopiere und die Vorschau anschaue.
Ich hoffe man kann mir helfen.
https://www.herber.de/bbs/user/135851.xlsm

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe beim ändern eines VBA Skriptes
13.03.2020 23:52:49
volti
Hallo Maik,
hier mal ein Ansatz, wie Du das machen könntest.
Allerdings ist Deine Beschreibung für mich nicht eindeutig, so dass ggf. noch etwas verändert werden müsste...
Option Explicit
Sub MakeDRFE_VA()
 Dim iZeile As Long
 Open ThisWorkbook.Path & "\Delivery Ticket FE.fdf" For Output As #1
 On Error GoTo Fehler
 With ActiveSheet
  Print #1, "%FDF-1.2"
  Print #1, "1 0 obj<<"
  Print #1, "/FDF<<"
  Print #1, "/Fields"
  Print #1, "["
  For iZeile = 1 To .UsedRange.Rows.Count
   If .Cells(iZeile, "A").Value = "" Then Exit For
   Print #1, Replace("<</T(Item" & iZeile & ")/V(" & .Cells(iZeile, "A").Value & ")>>", "&", "_")
  Next iZeile
  Print #1, "]"
  Print #1, "/F(S:/JobFiles/Blank DR FE.pdf)"
  Print #1, ">>"
  Print #1, ">>"
  Print #1, "endobj"
  Print #1, "trailer"
  Print #1, "<</Root 1 0 R>>"
  Print #1, "%%EOF"
  Close #1
 End With
 MsgBox "Die Datei wurde erstellt!", vbInformation, "Datei erstellen"
Fehler:
End Sub

viele Grüße
Karl-Heinz

Anzeige
AW: Hilfe beim ändern eines VBA Skriptes
14.03.2020 11:07:25
Maik
Hallo Volti,
das schaut schon mal gut aus.
Leider ist es immer schwer zu erklären wenn man es nur selber im Kopf hat.
Ich möchte nicht das er Item1 Item2 usw schreibt sondern aus meiner Tabelle die Inhalte von A1,B1,C1 usw bis nichts mehr steht nimmt.
Dann soll er die Werte was jetzt aus Spalte A genommen wird aus Reihe 2 Nehmen. Also die Inhalte aus A2,B2,C2 usw. am besten genau so lange wie er in Reihe 1 gekommen ist. Da in Reihe 2 nicht immer ein Wert ist.
ich habe das mal in der Exceltabelle verdeutlicht.
AW: Hilfe beim ändern eines VBA Skriptes
14.03.2020 12:26:59
volti
Hallo Maik,
hier eine neue Version, die hoffentlich, wenn ich Dich richtig verstanden habe, Deinen Wünschen näher kommt.
Eine entsprechend vorbereitete Datei habe ich aber nicht gefunden. Aus Deiner im ersten Beitrag geposteten Datei geht das so nicht hervor...
FDF-Datei_erstellen.xlsm
Option Explicit
Sub MakeDRFE_VA()
 Dim iSpalte As Integer
 Open ThisWorkbook.Path & "\Delivery Ticket FE.fdf" For Output As #1
 On Error GoTo Fehler
 With ActiveSheet
  Print #1, "%FDF-1.2"
  Print #1, "1 0 obj<<"
  Print #1, "/FDF<<"
  Print #1, "/Fields"
  Print #1, "["
  For iSpalte = 1 To .UsedRange.Columns.Count
   If .Cells(1, iSpalte).Value = "" Then Exit For
   Print #1, Replace("<</T(" & .Cells(1, iSpalte).Value & ")/V(" _
        & Replace(.Cells(2, iSpalte).Value, "&", "_") & ")>>", "&", "_")
  Next iSpalte
  Print #1, "]"
  Print #1, "/F(S:/JobFiles/Blank DR FE.pdf)"
  Print #1, ">>"
  Print #1, ">>"
  Print #1, "endobj"
  Print #1, "trailer"
  Print #1, "<</Root 1 0 R>>"
  Print #1, "%%EOF"
  Close #1
 End With
 MsgBox "Die Datei wurde erstellt und im Ordner" & vbLf & ThisWorkbook.Path & vbLf & "abgelegt!", _
        vbInformation, "FDF-Datei erstellen"
Fehler:
End Sub

viele Grüße
Karl-Heinz

Anzeige
AW: Hilfe beim ändern eines VBA Skriptes
14.03.2020 13:25:41
Maik
Ok in meiner Testdatei macht es genau was es soll.
In meiner scharfen Datei nicht.
Dort habe ich z.B. Das Blatt Dokumente dort befindet sich hinter einem Butten eine Userform in der ich Daten eingebe und berechnen lasse. Beim klick auf Ok schreibt er alles in die Zeile A2,B2 usw auf dem Blatt Daten. Jetzt erstellt das von dir geändert Makro die FDF Datei und als letztes wird eine PDF geöffnet.
Wenn ich das jetzt mache ist Die Datei leer. Ich denke mal er weiß nicht das die Daten im Blatt "Daten" liegt.
Wenn ich das ein zweites mal mache kommt eine Debugg Fehlermeldung.
Open ThisWorkbook.Path & "\Delivery Ticket FE.fdf" For Output As #1
ich Denke mal er hat ein Problem das die Datei schon vorhanden ist.
Bei erstmaligen klicken kommt auch nicht die MsgBox Das es fertig ist.
Bei der testexcel geht alles ganz normal. Msgbox kommt und ich kann den button auch mehrmals anklicken. Kein Problem.
Ach sorry den Anhang habe ich vorhin vergessen. Aber es macht ja in der testExcel was es soll.
Anzeige
nur diese Frage, sonst keine...
14.03.2020 13:37:21
Oberschlumpf
...weiteren Antworten
Hi Maik,
Aber es macht ja in der testExcel was es soll.
Kein Wunder! Weil ja Karl-Heinz seinen Code genau an deine - schlechte - Bsp-Datei angepasst hat.
Wenn die Originaldatei anders aussieht, kann der Code ja auch nicht funktionieren!
Wieso zeigst du nicht gleich eine Bsp-Datei, die vom Aufbau deinem Original nicht nur ähnlich sieht, sondern ganz genau so aussieht?
Sorry, ich verstehe euch Fragenden so oft nicht.
Wenn ich als Vorgabe Birnen abliefere, kann ich von niemandem erwarten, dass mir jemand daraus einen Apfelkuchen backt!
Ciao
Thorsten
Anzeige
AW: nur diese Frage, sonst keine...
14.03.2020 13:44:11
Maik
In der richtigen Datei sind sehr viele Daten drin.
ich versuche das mal zu löschen. und dann lade ich Sie gleich hoch.
Aber nicht meckern die ist bestimmt genauso schlecht.
Ich kann es halt nicht besser
ok, doch noch ne Meldung von mir :-)
14.03.2020 13:54:14
mir
Hi Maik,
ich meckerte nicht, wegen deines vielleicht noch nicht so großen Wissens in Excel / VBA.
(wir alle haben klein angefangen)
Mir hatte nicht gefallen, dass du etwas zeigst, was man mit deinem Original nicht wirklich vergleichen kann (so habe ich deine Beschreibungen dazu interpretiert).
Wie soll man denn da eine brauchbare Lösung liefern können?
Und was die vielen Daten im Original betrifft. Ja, löschen ist eine fast gute Idee. Besser würde zumindest ich es finden, wenn du anstelle der Originaldaten Beispieldaten einträgst.
Anzeige
AW: nur diese Frage, sonst keine...
14.03.2020 13:55:29
Maik
So einmal die Originale als Kopie. Sorry fals Sie auch schlecht gemacht ist. Aber für mich streckte da viel arbeit drin.
Mit der FDF sollen dann nachher Felder in den PDF Dokumenten gefüllt werden.
https://www.herber.de/bbs/user/135857.xlsm
AW: Hilfe beim ändern eines VBA Skriptes
14.03.2020 15:33:45
volti
Hallo Maik,
das ist klar, dass es in Deiner Originaldatei zu Fehlern kommt. Man muss ja auch nicht das aktuelle Blatt als Datengrundlage nehmen, sondern je nach Bereich ein anderes.
Wenn es dann zu Fehlern kommt, wurde die FDF-Datei nicht geschlossen und kann dann nicht wieder neu angefangen werden, weil noch offen.
Es ist halt immer gut, wenn man Beispieldateien bereitstellt, die so aussehen wie es in Wirklichkeit ist und eine einigermaßen aussagekräftige Beschreibung, was man will. Das war leider nicht der Fall
Dann kann man Dir auch helfen.
Ich beschäftige mich damit und melde mich wieder....
Es sei denn, Du hast jetzt schon die Lösung :-)
viele Grüße
Karl-Heinz
Anzeige
AW: Hilfe beim ändern eines VBA Skriptes
14.03.2020 16:02:54
volti
Hier noch mal ein Versuch, der besser passen könnte:
Option Explicit
Sub MakeDRFE_VA()
'Erstellt eine FDF-Datei aus den Daten im Blatt Daten
 Dim iSpalte As Integer
 On Error GoTo Fehler
 Close #1
'Datei wird im gleichen Ordner abgelegt, in der diese XLS ist
 Open ThisWorkbook.Path & "\Delivery Ticket FE.fdf" For Output As #1
 With ThisWorkbook.Sheets("Daten")  'Hier kommen die Daten her
'Feste Beginndaten schreiben
  Print #1, "%FDF-1.2"
  Print #1, "1 0 obj<<"
  Print #1, "/FDF<<"
  Print #1, "/Fields"
  Print #1, "["
'Jetzt die Daten aus dem Blatt Daten übernehmen
'Kopftexte aus Zeile 1, Datenwerte aus Zeile 2
'Anzahl der Datensätze anhand der Anzahl Spalten in Zeile 1
  For iSpalte = 1 To .UsedRange.Columns.Count
   If .Cells(1, iSpalte).Value = "" Then Exit For
   Print #1, Replace("<</T(" & .Cells(1, iSpalte).Value & ")/V(" _
        & Replace(.Cells(2, iSpalte).Value, "&", "_") & ")>>", "&", "_")
  Next iSpalte
'Feste Endedaten schreiben
  Print #1, "]"
  Print #1, "/F(S:/JobFiles/Blank DR FE.pdf)"
  Print #1, ">>"
  Print #1, ">>"
  Print #1, "endobj"
  Print #1, "trailer"
  Print #1, "<</Root 1 0 R>>"
  Print #1, "%%EOF"
  Close #1                      'Datei schließen
 End With
 MsgBox "Die Datei wurde erstellt und im Ordner" & vbLf & ThisWorkbook.Path & vbLf & "abgelegt!", _
        vbInformation, "FDF-Datei erstellen"
 Exit Sub
Fehler:
 MsgBox "Es ist der Fehler " & Err & ", '" & Error & "' aufgetreten!" & vbLf _"
   & "Die Datei konnte nicht erstellt werden!", vbCritical, "FDF-Datei erstellen"
End Sub

viele Grüße
Karl-Heinz

Anzeige
AW: Hilfe beim ändern eines VBA Skriptes
14.03.2020 16:20:25
Maik
Hallo Karl-Heinz,
da kommt sofort Syntaxfehler.
AW: Hilfe beim ändern eines VBA Skriptes
14.03.2020 16:51:33
volti
Sorry, da hatte die Forensoftware noch schnell ein " reingemogelt und ich es nicht bemerkt:
Option Explicit
Sub MakeDRFE_VA()
'Erstellt eine FDF-Datei aus den Daten im Blatt Daten
 Dim iSpalte As Integer
 On Error GoTo Fehler
 Close #1
'Datei wird im gleichen Ordner abgelegt, in der diese XLS ist
 Open ThisWorkbook.Path & "\Delivery Ticket FE.fdf" For Output As #1
 With ThisWorkbook.Sheets("Daten")  'Hier kommen die Daten her
'Feste Beginndaten schreiben
  Print #1, "%FDF-1.2"
  Print #1, "1 0 obj<<"
  Print #1, "/FDF<<"
  Print #1, "/Fields"
  Print #1, "["
'Jetzt die Daten aus dem Blatt Daten übernehmen
'Kopftexte aus Zeile 1, Datenwerte aus Zeile 2
'Anzahl der Datensätze anhand der Anzahl Spalten in Zeile 1
  For iSpalte = 1 To .UsedRange.Columns.Count
   If .Cells(1, iSpalte).Value = "" Then Exit For
   Print #1, Replace("<</T(" & .Cells(1, iSpalte).Value & ")/V(" _
        & Replace(.Cells(2, iSpalte).Value, "&", "_") & ")>>", "&", "_")
  Next iSpalte
'Feste Endedaten schreiben
  Print #1, "]"
  Print #1, "/F(S:/JobFiles/Blank DR FE.pdf)"
  Print #1, ">>"
  Print #1, ">>"
  Print #1, "endobj"
  Print #1, "trailer"
  Print #1, "<</Root 1 0 R>>"
  Print #1, "%%EOF"
  Close #1                      'Datei schließen
 End With
 MsgBox "Die Datei wurde erstellt und im Ordner" & vbLf & ThisWorkbook.Path & vbLf & "abgelegt!", _
        vbInformation, "FDF-Datei erstellen"
 Exit Sub
Fehler:
 MsgBox "Es ist der Fehler " & Err & ", '" & Error & "' aufgetreten!" & vbLf & "Die Datei konnte nicht erstellt werden!", vbCritical, "FDF-Datei erstellen"
End Sub


viele Grüße
Karl-Heinz

Anzeige
AW: Hilfe beim ändern eines VBA Skriptes
14.03.2020 17:11:06
volti
Sorry Maik,
ich meiner HTML-Umsetzroutine ist ein Fehler bzgl. der '-Zeichen erstmals aufgetreten, den ich beheben muss.
Derweil den Code ohne Formatierung:
MsgBox "Es ist der Fehler " & Err & ", '" & Error & "' aufgetreten!" & vbLf & "Die Datei konnte nicht erstellt werden!", vbCritical, "FDF-Datei erstellen"
VG KH
AW: Hilfe beim ändern eines VBA Skriptes
14.03.2020 17:24:00
Maik
Ich bin begeistert von eurem Wissen.
Ich muss das unbedingt erlernen.
Nun kann ich Dank eurer Hilfe weiterarbeiten.
Wie lange habe ich nach einer Lösung gesucht mit Exceldaten PDF Felder zu befüllen.
DANKE DANKE

294 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige