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, 223 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
Windows Server

Active Directory ESE Version Store Changes in Server 2019

Information von Dani vor 3 TagenWindows Server

Moin, Last month at Microsoft Ignite, many exciting new features rolling out in Server 2019 were talked about. But ...

Exchange Server

Microsoft Extending End of Support for Exchange Server 2010

Information von Dani vor 3 TagenExchange Server4 Kommentare

Moin, After investigating and analyzing the deployment state of an extensive number of Exchange customers we have decided to ...

Schulung & Training

Humble Book Bundle: Network and Security Certification 2.0

Tipp von NetzwerkDude vor 3 TagenSchulung & Training

Abend, bei HumbleBundle gibts mal wider ein schönes Paket e-books: sind verschiedene Zertifizierungen wie MCSA, CCNA, CompTIA etc., für ...

Voice over IP

Telekom Umstellung von ISDN Anlagenanschluss auf IP-Telefonie

Erfahrungsbericht von NixVerstehen vor 6 TagenVoice over IP10 Kommentare

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

Heiß diskutierte Inhalte
VB for Applications
Euro-Zeichen in jedem neu erstellten Brief mit Word automatisch entfernen
gelöst Frage von imebroVB for Applications23 Kommentare

Hallo, ich habe ein Problem mit Word, bzw. mit dem €-Zeichen, welches bei Erstellung eines Word-Briefes automatisch eingesetzt wird. ...

Batch & Shell
Regedit eintrad ändern als Admin
Frage von cyberworm83Batch & Shell19 Kommentare

Hallo zusammen, ich bin derzeit als Rollout Techniker unterwegs und muss täglich bei zig Rechnern einen Registry Einträg ändern ...

LAN, WAN, Wireless
Gebäude mit LWL-Anschlüssen ausstatten - VorNachteile?
Frage von staybbLAN, WAN, Wireless17 Kommentare

Hallo zusammen, es gibt ja mittlerweile viele Firmen die nicht nur ihre Backbones mit FibreChannel anbinden sondern auch direkt ...

Visual Studio
Prüfen, ob Programm schon disposed wurde
Frage von MarcoBornVisual Studio17 Kommentare

Hallo Forum, ich habe in VB.NET ein Programm geschrieben, welches Word startet und dort Daten ausliest. Obwohl ich die ...