Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Werte über VB in Word-Datei-Felder einlesen

Frage Entwicklung VB for Applications

Mitglied: dila21

dila21 (Level 1) - Jetzt verbinden

02.10.2014, aktualisiert 07.11.2014, 1823 Aufrufe, 16 Kommentare

Hallo zusammen,

ich habe ein Problem . Ich habe ein VB-Script, welches Werte in eine Word Datei einlesen soll. Die Werte werden von einer .dat Datei gezogen.
Hierzu wird aktuell

oDoc.CustomDocumentProperties("Test") = Test

verwendet.

Im Anschluß wird das ganze als PDF gespeichert und die Word Datei wird im Orginalzustand gelassen. So funktioniert das ganze auch hervorragend.
Allerdings in einer produktiven Umgebung, bekommen wir andauernd Laufzeitfehler im VB-Script.

Fehler: Laufzeitfehler im VB-Script, (Zeilennummer) ungültiger Prozeduraufruf oder ungültiges Argument.

Die Zeilennummer verweist mich auf die Zeile, wo die Felder mit oDoc.CustomDocumentProperties gesetzt werden.

Hat einer von Euch eine Idee, wie ich dieses Problem beheben könnte oder vielleicht eine andere Variante wie man das ganze einlesen kann.

Vielen Dank im voraus.

Dila
Mitglied: ITvortex
02.10.2014 um 16:28 Uhr
Hallo,

stimmen die Datensätze der User mit deinen Testdatensätzen überein oder werden da zusätzliche Attribute auch ausgelesen und verursachen deshalb den Fehler?

Gruß
ITvortex
Bitte warten ..
Mitglied: colinardo
02.10.2014, aktualisiert um 19:47 Uhr
Hallo Dila,
ich vermute schwer das du die CustomProperty im Dokument noch gar nicht mit der Add() Methode hinzugefügt hast, und deswegen die Exception geworfen wird .
Ansonsten liegt es an den Daten die du versuchst auszulesen.
Ohne mehr Details deines Codes schwer zu sagen.

Man kann in Word an den entsprechenden Stellen an denen die Daten importiert werden sollen, einfach Textmarken(Bookmarks) erstellen. Welche man dann über oDoc.Bookmarks("NameXYZ") ansprechen und mit dem gewünschten Text füllen kann. So macht man sowas normalerweise. Ansonsten geht dies nach dem selben Schema auch mit Formularfeldern; die lassen sich ebenfalls mit Namen versehen und im VBA Code ansprechen oDoc.Formfields("NameXYZ")

Grüße Uwe
Bitte warten ..
Mitglied: dila21
08.10.2014 um 16:45 Uhr
Hallo ITvortex,

das Problem ist, das die Feldmarkierungen gelöscht werden, wenn das dokument innerhalb diesem produktiv system geöffnet wird. .
Gibt es vielleicht eine Möglichkeit, die Feldmarkierungen, wo ich die Attribute im Dokument zuordne über ein vb script immer wieder neu
hinzufüge?

Gruß Dila
Bitte warten ..
Mitglied: dila21
08.10.2014 um 16:48 Uhr
Hallo Uwe,

die CustomProperties wurden mit oDoc. hinzugefügt. Allerdings liegt das Problem darin, was ich nun erst heute herausgefudnen habe, da ich die letzten Tage krank war, das die Bookmarks entfernt werden, sobald man mit einem bestimtmen Addin arbeitet. Gibt es eine Möglichkeit, diese Felder über ein Script im Worddokument hinzufügen? Oder ist es die einzige Möglichkeit?

Gruß Dila
Bitte warten ..
Mitglied: colinardo
08.10.2014, aktualisiert um 17:02 Uhr
Gibt es eine Möglichkeit, diese Felder über ein Script im Worddokument hinzufügen?
klar, aber man muss halt wissen wo sie hinzugefügt werden sollen....und das wird eine Fusselsarbeit wenn man keine Markierungen hat...Altermativ kannst du natürlich deine eigene Markierung erstellen z.B. als normaler Text ++MARKER++Name++ und dann nach diesen Stellen im Dokument suchen und durch deine Daten ersetzen.
das die Bookmarks entfernt werden, sobald man mit einem bestimtmen Addin arbeitet.
habe ich noch nie gehört, was ist das denn für ein Schrott ?
Bitte warten ..
Mitglied: dila21
09.10.2014 um 08:41 Uhr
Hallo Uwe,

ja ich habe das auch nicht geglaubt, und man hat es mir dann gezeigt. Die Bookmarks muss man jedesmal neu zuordnen.
Bin jetzt wirklich etwas verzweifelt. Vielleicht sollte ich das mit den eigenen Markierungen mal versuchen.
Aber da könnte es ja sein, das auch diese Markierungen verschwinden, oder meinst du, das ich diese eigenen Markierungen dafür nutze, damit
ich dann dadurch weiß wo ich die anderen Bookmarks hinzufügen soll? Vielen Dank nochmals.

Gruß Dila
Bitte warten ..
Mitglied: colinardo
09.10.2014 um 08:54 Uhr
Moin Dila,
naja wenn das Plugin "normalen" Text entfernt wäre das ja eine Katastrophe da würde ich mir dann schwer überlegen ob ich das Plugin weiter nutze.
Ich meinte die Funktionsweise folgendermaßen:
Man fügt an den gewünschten Stellen einen Text nach deinem ganz speziellen Muster wie oben geschrieben ein und dann durchsucht man via VBA das ganze Dokument nach diesen Markern, extrahiert den Markername und setzt anhand des Markernamens den gewünschten Text ein, zum Schluss wird das ganze als neues Dokument gespeichert, fertig. Beim nächsten mal nutzt man dann wieder die Vorlage.

Noch eine Frage: Werden nur Bookmarks entfernt, oder auch Formularfelder und Feldfunktionen ?
Bitte die genaue Bezeichnung beachten !! Diese kann man nämlich auch mit Namen versehen und via VBA ansprechen.

Viele Grüße Uwe
Bitte warten ..
Mitglied: dila21
09.10.2014 um 09:10 Uhr
Hallooo,

Feldfunktionen. Habe gerade nachgeschaut. Also im Dokument sind die unter DocProperty = die jeweilige Eigenschaft. Und diese werden entfernt. Ich glaube ich verwechsle die Bookmarks mit den Feldfunktionen. Ich dachte immer das sei dasselbe. .

Gruß Dila
Bitte warten ..
Mitglied: dila21
09.10.2014 um 09:13 Uhr
Ich werde jetzt Formularfelder versuchen, dann nochmal Textfelder. Hoffe das funktioniert dann. Vielen Dank. Du warst grad wirklich eine Hilfe.
Bitte warten ..
Mitglied: colinardo
09.10.2014, aktualisiert um 09:17 Uhr
Na dann, setze Bookmarks (auf Deutsch Textmarken) an die gewünschten Stellen und weise Ihnen im Code deine Daten zu ... wie das geht hatte ich ja ganz oben schon erwähnt.
Bitte warten ..
Mitglied: dila21
09.10.2014 um 10:17 Uhr
Hallo Uwe,

ist es auch möglich, diese Daten aus einem anderen Dokument sich zu ziehen?
bei den Feldfunktionen sah das im code folgendermaßen aus.

oDoc.CustomDocumentProperties("Name") = Name

Ich habe jetzt eine Textmarke erstellt im Dokument. Und im Code das folgendermaßen abgeändert.

oDoc.Bookmarks("Name").Range.Text = Name

Dieses .Range.Text hab ich durch googeln im Inet gefunden. Ohne das bringt der Code einen Fehler. Und so läuft der Code durch, aber das Feld wird nicht gefüllt.
Hast du vielleicht eine Idee?

Gruß Dila
Bitte warten ..
Mitglied: colinardo
09.10.2014, aktualisiert um 10:27 Uhr
Zitat von dila21:
Dieses .Range.Text hab ich durch googeln im Inet gefunden. Ohne das bringt der Code einen Fehler. Und so läuft der Code
durch, aber das Feld wird nicht gefüllt.
Klar das oben war auch nur ein Hinweis welches Objekt du verwenden musst, die Eigenschaften lassen sich ja per Intellisense rausfinden

Hier geht das einwandfrei:
oDoc.Bookmarks("Testmarke").Range.Text = "Dein text"
oder wenn du die Textmarke mit dem Inhalt der CustomProperty füllen willst:
oDoc.Bookmarks("Testmarke").Range.Text = oDoc.CustomDocumentProperties("DeineProperty").Value
wobei das dann aber doppelt gemoppelt wäre wenn du erst die Dokumenteigenschaften füllst, und hinterher nochmal die Textmarken....

Name kannst du ja nicht zuweisen muss ja ein String sein ...
Bitte warten ..
Mitglied: dila21
09.10.2014 um 10:39 Uhr
Vielen Dank .

Jaa Name hatte ich genommen, weil der Name wird ja auch aus einem Textdokument über vb rausgezogen und im Word-Dokument eingetragen. Deshalb dieses Beispiel.
Vielen Dank. Dann geh ichs mal an . Dankee
Bitte warten ..
Mitglied: dila21
14.10.2014 um 08:37 Uhr
Guten Morgen Zusammen,

Vielen Dank für die Informationen, das hat soweit jetzt ganz gut geklappt.
Ich hätte jetzt noch eine Frage, gibt es eine Möglich in VB, das der Code sozusagen
nur ein Feld ausfüllt, wenn dies vorhanden ist, ansonsten soll es überspringen werden.

Weil ich bekomme so sonst immer eine Fehlermeldung, wenn mal ein Textmarker
kein Attribut bekommt.

Gruß Dila
Bitte warten ..
Mitglied: colinardo
LÖSUNG 14.10.2014, aktualisiert 07.11.2014
Hallo Dila,
Zitat von dila21:

Ich hätte jetzt noch eine Frage, gibt es eine Möglich in VB, das der Code sozusagen
nur ein Feld ausfüllt, wenn dies vorhanden ist, ansonsten soll es überspringen werden.
Weil ich bekomme so sonst immer eine Fehlermeldung, wenn mal ein Textmarker
kein Attribut bekommt.
kannst du folgendermaßen machen:
01.
On Error Resume Next 
02.
Set bm = oDoc.Bookmarks("Test") 
03.
If Not bm Is Nothing Then 
04.
    ' Bookmark ist vorhanden  hier dein Code 
05.
Else 
06.
   ' Bookmark 'Test' ist nicht vorhanden 
07.
End If
Grüße Uwe
Bitte warten ..
Mitglied: dila21
07.11.2014 um 11:17 Uhr
Hallo Uwe,

zurück aus dem Urlaub, habe ich am Montag die Meldung bekommen, dass das ganze nun funktioniert hat. Vielen Dank nochmals.

Gruß Dila
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch: Word Datei kopieren und umbennen (9)

Frage von ExcelNoob177 zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel Pdf Datei als Icon Symbol in Word einfügen per Drag and drop? (4)

Frage von Geforce zum Thema Microsoft Office ...

Batch & Shell
gelöst PS Werte CSV-Datei in AD Attribut (3)

Frage von lupolo zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...