Excel-Makro-Problem fdf-einlesen

kalterjava

Erfahrenes Mitglied
Hi zusammen,

viele sind sicher auf der gleichen Suche wie ich - einem Adobe Acrobat Ersatz zu finden.
Ich habe alle Tools gefunden, um über einen Workaround dies zu erreichen, leider gibt es Probleme beim Auslesen der fdf-Datei (Dieses Dateiformat enthält nur die Benutzereingaben des PDF-Formulars, das ja für die Auswertung absolut ausreicht).

Gerne würde ich bei Erfolg ein kurzes Tutorial erstellen, so dass jeder von einer OpenSource-Lösung profitieren kann.

Leider kenne ich mich mit VB nicht aus und frage deshalb hier, ob jmd. den Fehler finden kann, warum das Script nicht funktioniert.

Im Anhang ist das openfdf-Script als Exceldatei und eine Test fdf.
Wenn ich das Makro starte und die fdf auswähle, bricht das Makro den Vorgang mit einem Laufzeitfehler ab:
PHP:
Laufzeitfehler 5: Ungültiger Prozeduraufruf oder ungültiges Argument

Wär super, wenn jmd. helfen könnte.

Danke im Voraus.

EDIT: Das Formular selbst wurde mit Scribus erstellt

VG
kalterjava
 

Anhänge

  • openfdf_testfdf.zip
    13,1 KB · Aufrufe: 263
Zuletzt bearbeitet:
Liebe Administratoren,

bitte den Beitrag hierhin verschieben >> Stellenangebote (unentgeltlich).

Wer das VB-Problem löst, bzw. mir erklären kann, wie ich mit Scribus und dem Makro fdf-Dateien in Excel importieren kann, dem erstelle ich einen individuellen Homepage-Banner als kleine Gegenleistung und Dankeschön.

Vielen Dank!
 
Hallo Kalterjava,

Ich nehme an, dass sich das Problem seit Jahren für die erledigt hat. Ich habe heute einige Zeit damit verbracht dazu eine Lösung zu finden, da ich die fdf Dateien für eine Umfrage einlesen muss.

Wie so oft, ist die Lösung ziemlich einfach:

Im Makro-Code muss mann den nicht 3 Mal den " Line Input #1, WholeLine" Befehl schreiben, sondern 4 Mal! Da die relevanten Zeilen erst in der 4-ten Zeile der Datei stehen.

Dass heisst: den Befehl " Line Input #1, WholeLine" kopieren und einfügen, damit 4 mal Line Input #1, WholeLine da steht, also:
Line Input #1, WholeLine
Line Input #1, WholeLine
Line Input #1, WholeLine
Line Input #1, WholeLine
StartPos = (InStr(1, WholeLine, "[")) + 1
.
.
.
u.s.w (den Rest des Codes ist in der Datei von Kalterjava vorhanden)

Ich habe diese Antwort geschrieben, um all den anderen Hilflosen (wie ich einer war) in diesem Problem zu helfen.
Grüsse Andy86
 
Hi Andy86,

nein, ganz und gar nicht konnte ich das Problem lösen. Sonst hätte ich es als erledigt markiert und hätte die Lösung gepostet.
Deshalb schon einmal vielen Dank für deine Erklärung. Ich habe das Problem einfach zurückgestellt und werde deine Lösung in den nächsten Tagen ausprobieren. Du hast also auch Formulardaten auslesen müssen. Hast du es dann geschafft alle fdf-Dateien in einer einzigen Excel-Datei auslesen zu lassen, oder pro fdf-Datei, eine Excel-Auswertungsdatei?

Hey, wenn das klappt, halte ich mich an mein Versprechen. Kannst mir dann einfach deine E-Mail per PN mitteilen.

Viele Grüße vom kaltenjava
 
Tach Kalterjava.

Na hats geklappt?

Ich habe versucht alle Daten in eine Excel einzulesen, klappte aber nicht. Stattdessen habe ich für das Makro ein Tastenkürzel konfiguriert.
Da die FDF-Dateien per E-Mail attachement reinkommen, lese ich die einzeln ein (also Excel öffnen, Tastenkürzel und Datei wählen), speichere sie und importiere sie dann als neuen Datensatz in eine Access Datenbank, da kann man ohne Probleme die oberste Zeile als Titel nehmen und somit nur die Daten in die Datenbank einlesen.
Wenn du eine Lösung findest, wie man mehrere FDF-Files als Zeilen ins Excel einlesen kann, lass mich das bitte wissen, wäre schon nützlich...

Ich habe keine Homepage, bin aber auch mit dem Dankeschön zufrieden :)

Cheers Andy86
 
Hi Andy,

sry, konnte es erst jetzt ausprobieren. Jetzt klappt es prima! Besten Dank!

Da die FDF-Dateien per E-Mail attachement reinkommen, lese ich die einzeln ein (also Excel öffnen, Tastenkürzel und Datei wählen), speichere sie und importiere sie dann als neuen Datensatz in eine Access Datenbank, da kann man ohne Probleme die oberste Zeile als Titel nehmen und somit nur die Daten in die Datenbank einlesen.

Klingt gut!

Wenn du eine Lösung findest, wie man mehrere FDF-Files als Zeilen ins Excel einlesen kann, lass mich das bitte wissen, wäre schon nützlich...

Ich mit Sicherheit nicht : ) Aber vielleicht hilft uns jmd. der diesen Beitrag liest und von der aktuellen Lösung jetzt schon profitiert. Das wäre sicher eine feine Sache, für alle die gerne mit OpenSource arbeiten oder denen das Geld für Adobe Produkte fehlen. Wie schon gesagt, ich würde demjenigen auch ein Werbebanner als Gegenleistung anbieten (du brauchst anscheinend keinen) und für Tutorials.de ein extra Tutorial anfertigen.

Bitte liebe Webmaster, verschiebt doch diesen Beitrag zu den unentgeltlichen Stellenangebote.

Ich weiß, dass es für das Einlesen mehrerer fdf-Dateien kommerzielle Produkte gäbe, aber dann kann man gleich zu Acrobat greifen...

Danke Danke Danke! :)

VG
kalterjava
 
Zuletzt bearbeitet:
Hallo.

eine Frage an euch. Konntet ihr das Problem mittlerweile gut loesen und habt ihr es auch einmal mit OpenOffice ausprobiert? Habe nun für meine Masterarbeit ebenso einen Testfragebogen gemacht. Funktioniert auch. Jedoch will ich ebenso die FDF nicht per Hand in dem OO-Calculator oder Excel importieren. Weniger wegen der Arbeit aber auch wegen der Tatsache, Fehler beim Einfügen zu begehen. Danke. Bergfex
 
Hi Bergfex,

nein, leider nicht. Hab bis jetzt niemand gefunden, der das konnte oder machen möchte. Ich muss auf die Option zurückgreifen das Makro in Excel laufen zu lassen und die gewonnene Zeile in ein anderes Excel-Dokument reinkopieren.
 
Guten Tag miteinander

Wahrscheinlich ist das Problem für die Fragenden nicht mehr aktuell ;-)

Für die anderen eine Variante, mit Ordnerauswahl:

alle *.fdf Dateien im ausgewählten Ordner werden importiert, bei der ersten Datei auch die Feldnamen.

Herzliche Grüsse,
Roland
 

Anhänge

  • openfdf2_testfdf.zip
    17,9 KB · Aufrufe: 226
Moin zusammen,

funktioniert auch mit fdf-Dateien aus PDF-Architect. Meine fdf-Datei hat dann vier Zeilen am Anfang, die nicht gelesen werden sollen:
%FDF-1.2
%âãÏÓ
1 0 obj<</FDF<</Fields 2 0 R>>>>
endobj
FÜNFTE ZEILE MIT DATEN
endobj​

Deshalb musste ich eine fünfte "Line Input"-Zeile eingefügen. Dann hat es sofort geklappt. Hier die Ergänzung im Code:
...
Open fname For Input Access Read As #1 'open fdf file


Line Input #1, WholeLine 'Skip first four lines as they do not contain any data
Line Input #1, WholeLine
Line Input #1, WholeLine
Line Input #1, WholeLine
Line Input #1, WholeLine
StartPos = (InSt ....

Liest aber gerade nur eine Datei ein und eben nicht alle im Ordner. :-( Vielleicht sehe ich ja noch den Fehler ...
 
Zurück