webbi
Goto Top

Textfeld 7 stellen kopieren

Textfeld mit x stellen auslesen und in neues Dokument einfügen

Hallo

Bin gerade dabei ein Makro in Word zu schreiben und scheitere gerade an einem Problem.

Ich habe ein Formular mit 6 Feldern (Vorname, Nachname, Passwort, usw.)

Wenn ich dieses Formular ausfülle möchte ich mit diesen Daten ein anderes Formular füllen und ausdrucken.
Das befüllen und ausdrucken funktioniert auch.

Allerdings habe ich in dem Dokument ein Feld, was nur zum Teil mit Daten befüllt werden soll und da habe ich keine
Ahnung wie ich das machen muss.

Aus dem Formular möchte ich von "vorname" NUR den ersten Buchstaben und von "nachname" max 7 Buchstaben
in das Dokument schreiben.

Die Felder kopiere ich bisher mit dem Befehl:

wDoc.FormFields("vorname").Result = oDoc.FormFields("vorname").Result

Habt Ihr eine Idee, wie ich das lösen kann.
Ich hoffe, dass ich das Verständlich erklärt habe - ansonsten einfach nachfragen, wenn ihr mehr Infos benötigt.

Webbi

Content-ID: 152816

Url: https://administrator.de/contentid/152816

Ausgedruckt am: 19.11.2024 um 20:11 Uhr

BigWim
BigWim 12.10.2010 um 08:51:50 Uhr
Goto Top
Such mal nach einer Funktion namens Left oder Links.

Die genaue Syntax kann ich jetzt nicht nachsehen, aber sinngemäß so

wDoc.FormFields("vorname").Result = Left(oDoc.FormFields("vorname").Result;7)  

Markus
76109
76109 12.10.2010 um 09:14:58 Uhr
Goto Top
Hallo Webbi!

Wobei in der Syntax von BigWim das Semikolon durch ein Komma zu ersetzen wäre und für Vorname die Ziffer 1 und für Nachname die Ziffer 7 zu verwenden istface-wink

Gruß Dieter
Webbi
Webbi 12.10.2010 um 12:25:09 Uhr
Goto Top
Hallo

Vielen Dank schon einmal für eure Hilfe.

Habe diese Codezeile mal eingefügt:

wDoc.FormFields("benutzername").Result = Left(oDoc.FormFields("vorname").Result, 1) & Left(oDoc.FormFields("nachname").Result, 7)

Allerdings ohne Erfolg. Habt ihr da noch eine Idee?

Webbi
Webbi
Webbi 12.10.2010 um 13:49:21 Uhr
Goto Top
Hallo Leute

Es funktioniert. Hatte es nicht richtig gespeichert!
Formular war beim speichern vom Makro geschützt und deshalb hat das wohl nicht geklappt.

Jetzt geht es - vielen Dank für die Hilfe.

Jetzt muss ich nur noch herausfinden, wie ich beim Ursprungsformular die Textfelder zurücksetze.

Das hier ist wohl noch nicht ganz richig:
Set oDoc = ActiveDocument
ActiveDocument.ResetFormFields

Webbi
BigWim
BigWim 12.10.2010 um 14:17:31 Uhr
Goto Top
Jetzt muss ich nur noch herausfinden, wie ich beim Ursprungsformular die Textfelder zurücksetze.

oDoc.FormFields("vorname").Result = ""  
vielleicht so?


Markus
Webbi
Webbi 12.10.2010 um 15:30:21 Uhr
Goto Top
Hi

Das ist nicht schlecht, bedeutet aber ja 6 Zeilen Script.

Von meinem bisherigen Stand der Programmierung sollte man die Scripte so kurz wie möglich halten.

Gibt es nicht so etwas wie?

oDoc.FormFields(*).Result = ""

Webbi
Biber
Biber 12.10.2010 um 16:25:25 Uhr
Goto Top
Moin Webbi,

Zitat von @Webbi:
Hi

Das ist nicht schlecht, bedeutet aber ja 6 Zeilen Script.

Von meinem bisherigen Stand der Programmierung sollte man die Scripte so kurz wie möglich halten.
Wer oder was hat dir denn so etwas erzählt??
Nach dieser Ultraplattregel wären unkommentierte Codeschnipsel besser als kommentierte.
Und 10 Oneliner besser als 100 Codezeilen, die einen geschlossenen Algorithmus beinhalten.


Gibt es nicht so etwas wie?

oDoc.FormFields(*).Result = ""
Doch, aber natürlich nicht in der Form, dass jedem (egal ob Text, Datums- oder Währungs-) Feld blind ein Leerstring zum Fressen gereicht wird.
Du hast es doch in deinem vorletzten Kommentar schon in der Hand gehabt, oder?

Grüße
Biber