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
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, 2055 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 ..
Ähnliche Inhalte
Microsoft Office
Übergabe von Wert eines benutzdefinierten Feld von Outlook an Word
Frage von ineichpMicrosoft Office7 Kommentare

Hallo zusammen Ich möchte Werte meiner gespeicherten Kontakte in Outlook direkt in Word als Textfeld einfügen. Das habe ich ...

XML
Einlesen bestimmten Werten, Texten aus XML- Datei in EXCEL
gelöst Frage von EverestXML11 Kommentare

Hallo Experten, ich möchte in Excel die Werte/Texte aus einer XML-Datei direkt lesen ohne sie zu importieren. Kann jemand ...

Microsoft Office
Wenn Feld mit Wert und 2 Felder mit Text dann. Werte mit Bezug aus anderem Tabellenblatt
gelöst Frage von frosch44Microsoft Office4 Kommentare

Guten Tag, ich haben ein Tabellenblatt mit mehreren Datenfeldern. Diese Datenfelder werden mit einem Bezug aus einem zweiten Tabellenblatt ...

JavaScript
JS wenn Feld leer dann Wert aus anderen Feld hollen
gelöst Frage von dax4funJavaScript3 Kommentare

Hi, Leute Ihr kenn das sicher beim ausfüllen von HTML Formularen, wenn gefragt wird wenn Lieferadresse und Rechnungsadresse unterschiedlich ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 6 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 10 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 10 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 14 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server15 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...