Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Pdf in excel einspielen mit vba und pdftotext

Mitglied: Pizzabrot

Pizzabrot (Level 1) - Jetzt verbinden

10.09.2019 um 13:52 Uhr, 184 Aufrufe, 4 Kommentare

Hallo Zusammen,
das Thema ist hier im forum bereits mehr als 4 jahre alt, aber für mich brand aktuell.
Ich möchte für eine Chemikalienliste aus verschiedenen Sicherheitsdatenblättern jeweils die H-Sätze raussuchen.
Mir diente folgender Beitrag als Inspiration:

https://administrator.de/forum/pdf-auslesen-vba-excel-schreiben-239601.h ...

Allerdings werden da direkt gezielte Daten ausgelesen und niedergschrieben.

Durch die Art und Weise von Sicherheitsdatenblättern stehen die H-Sätze aber nie an der selben Stelle und es gibt erst recht kein Schlüsselwort, nach dem die Stehen würden.

Mir würde es also reichen eine Stabile Lösung zu haben, das .txt file zu erzeugen und dieses dann in A1 meines Tabellenblattes zu kopieren.

ich kann das ganze naürlich auch per Hand machen aber per VBA und einem CommandButton ist das natürlich komfortabler.

Mein bisheriger Ansatz sah eigentlich folgender Maßen aus


01.
 Sub CommandButton1_Click()
02.
    Dim RetVal
03.
        RetVal = Shell("C:\Users\Pizzabrot\Desktop\Neuer Ordner\pdftotext.exe sdb.pdf", 1)      'Erzeugt die .txt File
04.
        
05.
        Application.Wait (Now + TimeValue("0:00:05"))                                       'Fügte eine Wartezeit hinzu, damit das .txt File sicher erstellt wird
06.
        
07.

08.
    With ActiveSheet.QueryTables.Add(Connection:= _
09.
        "TEXT;C:\Users\Pizzabrot\Desktop\Neuer Ordner\SDB.txt", _
10.
        Destination:=Range("$A$1"))
11.
        .Name = "SDB_1"                                                                     'Wurd per Makroaufnahme erstellt, um das .txt File einzulesen und bei A1 einzufügen
12.
        .FieldNames = True
13.
        .RowNumbers = False
14.
        .FillAdjacentFormulas = False
15.
        .PreserveFormatting = True
16.
        .RefreshOnFileOpen = False
17.
        .RefreshStyle = xlInsertDeleteCells
18.
        .SavePassword = False
19.
        .SaveData = True
20.
        .AdjustColumnWidth = True
21.
        .RefreshPeriod = 0
22.
        .TextFilePromptOnRefresh = False
23.
        .TextFilePlatform = 1252
24.
        .TextFileStartRow = 1
25.
        .TextFileParseType = xlDelimited
26.
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
27.
        .TextFileConsecutiveDelimiter = False
28.
        .TextFileTabDelimiter = True
29.
        .TextFileSemicolonDelimiter = False
30.
        .TextFileCommaDelimiter = False
31.
        .TextFileSpaceDelimiter = False
32.
        .TextFileColumnDataTypes = Array(1)
33.
        .TextFileTrailingMinusNumbers = True
34.
        .Refresh BackgroundQuery:=False
35.
    End With
36.
End Sub

Das hat soweit gestern auch alles wunderbar funktioniert. Heute allerdings nicht mehr und ich habe keine Ahnung wodran das liegt.

Ich bin in VBA auch noch ein ziemlicher Neuling und der Code hier ist das komplexeste was ich bisher erstellt habe.

Aber ich denke mir, so schwer kann das doch gar nicht, sein diesen CMD befehl auszuführen ohne direkt auf eine .bat zugreifen zu müssen.

Die PDF hier bei mir bisher immer SDB.pdf, was auch ausreicht. Schöner wärs natürlich wenn die einzelne PDF, mit beliebigem Namen, die in dem Ordner liegt, genommen und konvertiert werden würde.

Über Hilfe und Anregungen würde ich mich sehr freuen.

mfg
PB
Mitglied: Bitboy
10.09.2019 um 13:58 Uhr
Hi,

was hat sich denn seit gestern geändert, dass es nicht mehr funktioniert?
Kannst du sagen an welcher Stelle es abbricht? Also wird die Datei noch erstellt oder schon nicht mehr?

Grüße
Bitte warten ..
Mitglied: Pizzabrot
10.09.2019, aktualisiert um 14:02 Uhr
Hey Bitboy,
Die Datei wird gar nicht mehr erstellt.
Das einzige was ich geändert habe seit gestern, ist die Tatsache, das ich den PC aus und an gemacht habe.

/edit wenn ich in dem Ordner eine CMD starte und den Befehl pdftotext sdb.pdf eingebe wird die Datei wie gewollt erzeugt.

mfg
PB
Bitte warten ..
Mitglied: Bitboy
10.09.2019 um 14:57 Uhr
Hi,
So ausm Bauch raus kannst du dir mal ansehen was denn "Retval" für einen Wert hat, eventuell hilft der Exit code ja weiter.
https://www.xpdfreader.com/pdftotext-man.html

Was eventuell auch sein kann ist, das der Shellaufruf den Parameter nicht mag (dann wärs seltsam, dass es gestern funktioniert hat).
https://stackoverflow.com/questions/20917355/how-do-you-run-a-exe-with-p ...

Grüße
Bitte warten ..
Mitglied: Pizzabrot
11.09.2019, aktualisiert um 14:27 Uhr
wenn ich mir mit debug.print RetVal nach dem Wait ausgeben lasse kommt eine zufällige Vierstellige Zahl bei raus.

Was ich gerade noch probiert habe:
CMD.exe aus system32 in den Ordner kopieren und starten --> befehl pdftotext.exe sdb.pdf --> erfolgreich
Starten eben jener cmd.exe mittels: RetVal = Shell("C:\Users\Pizzabrot\Desktop\Neuer Ordner\cmd.exe pdftotext.exe sdb.pdf", 1) --> kein erfolg. weil die CMD aus unerfindlichen Gründen den Pfad nach C:\Users\Pizzabrot\Documents drin hat und den Befehl pdftotext.exe sdb.pdf gar nicht weitergibt

edit1: die pdftotext.exe mit Boppelklick zu starten funktioniert übrigens nicht, dass muss immer über CMD laufen
edit2: der Befehl "pdftotext.exe sdb.pdf" über eine .bat ausgeführt erzeugt wie gewünscht das .txt file
edit3: eben jene .bat über VBA gestartet verweist wieder auf Documents und kann pdftotext.exe nicht finden

mfg
PB
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel VBA - PDF
Frage von SabineTMicrosoft Office3 Kommentare

Hallo Zusammen, ich habe ein pdf, über welches ich bereits die OCR Texterkennung laufen lassen habe. Jetzt möchte ich ...

Microsoft Office

VBA Excel Tabellenblätter als PDF speichern

gelöst Frage von Florian86Microsoft Office8 Kommentare

Hallo, gib es die Möglichkeit per VBA ein einzelnes Tabellenblatt als PDF zuspeichern. Derzeit speichere ich immer die komplette ...

VB for Applications

Einzelne Begriffe aus PDF in Excel per VBA auslesen

gelöst Frage von joha1908VB for Applications20 Kommentare

Hallo zusammen, ich verwende das folgende Skript PDF auslesen und per VBA in Excel schreiben, um bestimmte Begriffe aus ...

VB for Applications

PDF Datei auslesen und per VBA in Excel schreiben

gelöst Frage von Julian8990VB for Applications3 Kommentare

Hallo zusammen! Ich bin auf folgenden Threat gestoßen, und konnte auch schon einige Erfolge erzielen! Mein Problem ist ein ...

Neue Wissensbeiträge
Voice over IP

Telekom Umstellung von ISDN Anlagenanschluss auf IP-Telefonie

Erfahrungsbericht von NixVerstehen vor 1 TagVoice over IP6 Kommentare

Hallo zusammen, nachdem nun vor ein paar Tagen die zwangsweise Umstellung von ISDN auf IP-Telefonie problemlos über die Bühne ...

Apple

Apple Special Event vom 10.09.2019: Arcade, TV+, iPad und iPadOS, Watch und iPhone 11

Information von Trontur vor 3 TagenApple2 Kommentare

Hier könnt ihr euch die Keynote von Tim Cook auf dem Apple Special Event vom 10.09.2019 anschauen: September Event ...

LAN, WAN, Wireless

Das RIPE ist quasi endgültig leer was IPv4 angeht

Information von LordGurke vor 10 TagenLAN, WAN, Wireless8 Kommentare

Das RIPE teilt mit, dass sie erwarten, Ende des Jahres keine /22-IPv4-Allocations (1.024 Adressen) mehr vergeben zu können. Dann ...

Verschlüsselung & Zertifikate

Ein besserer Weg zur Delegation of Control für Bitlocker Recoverykeys

Anleitung von DerWoWusste vor 11 TagenVerschlüsselung & Zertifikate

Will man Supportmitarbeitern ermöglichen, Bitlocker-Recoverykeys auszulesen, dann bietet sich eigentlich der Delegation of Control Wizard an. Ich zeige zunächst ...

Heiß diskutierte Inhalte
Router & Routing
Freitagsfrage: Welche Heimrouter habt ihr zuhause?
Frage von Ex0r2k16Router & Routing28 Kommentare

Huhu, Ich habe eine Fritzbox 7490 an nem 100/40 VDSL der Tkom und die kommt langsam in die Jahre. ...

Exchange Server
Exchange 2013 nach Umzug nicht erreichbar
gelöst Frage von dbox3Exchange Server16 Kommentare

Hallo, die Lösung für mein Problem mag einfach sein. Nur stehe ich irgendwie auf dem Schlauch. ich habe einen ...

Switche und Hubs
Hardwareberatung Switch
gelöst Frage von snowflockeSwitche und Hubs12 Kommentare

Hallo, ich bin ganz neu hier also seit gnädig :-) Ich bin seit 5 Jahre in der IT tätig, ...

Voice over IP
Telekom Umstellung von ISDN Anlagenanschluss auf IP-Telefonie
Erfahrungsbericht von NixVerstehenVoice over IP6 Kommentare

Hallo zusammen, nachdem nun vor ein paar Tagen die zwangsweise Umstellung von ISDN auf IP-Telefonie problemlos über die Bühne ...