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-Key: 152816

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

Printed on: April 24, 2024 at 22:04 o'clock

Member: BigWim
BigWim Oct 12, 2010 at 06:51:50 (UTC)
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
Mitglied: 76109
76109 Oct 12, 2010 at 07:14:58 (UTC)
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
Member: Webbi
Webbi Oct 12, 2010 at 10:25:09 (UTC)
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
Member: Webbi
Webbi Oct 12, 2010 at 11:49:21 (UTC)
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
Member: BigWim
BigWim Oct 12, 2010 at 12:17:31 (UTC)
Goto Top
Jetzt muss ich nur noch herausfinden, wie ich beim Ursprungsformular die Textfelder zurücksetze.

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


Markus
Member: Webbi
Webbi Oct 12, 2010 at 13:30:21 (UTC)
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
Member: Biber
Biber Oct 12, 2010 at 14:25:25 (UTC)
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