VBA: Zeichen aus Flächentextmarke > cbo übertragen

Hallo,
der Inhalt einer Flächentextmarke hat ca. 40 Zeichen, davon sollen nur 12 Zei-chen in eine Combobox übertragen werden. Geht das irgendwie? Die cbo1 hat die Eigenschaften
TabIndex=0
MaxLength=12
Mit
Sub test()
Selection.GoTo What:=wdGoToBookmark, Name:=„tm“
Selection.Copy
frm1.Show
Selection.Paste
End Sub
springt der Cursor zwar in die cbo1, fügt den kopierten Inhalt der TM aber erst ein, wenn mit STRG V manuell eingibt.
Danke für Eure Hilfe
und liebe Grüße
Wilhelm

Hallo Wilhelm,

dein Code sieht nach Word-Vba aus.

der Inhalt einer Flächentextmarke

Was ist das? Wie kann ich das in Word manuell erstellen?

Gruß
Reinhard

Hallo Reinhard,
Hintergrund: Wir arbeiten in der Kanzlei mit der RA- und Notariatssoftware NORA. Meine Word-Dokumentvorlage „Banküberweisung“ zieht aus den Stammdaten einer Akte mit dem Vorcode „Aktenname“ in den Überweisungsträger in die Zeile „Verwendungszweck“ z.B. „Verein zur Förderung bla, bla, bla…“, insgesamt z.B. 50 Zeichen. NORA: Die Länge des Vorcodes kann nicht limitiert werden. Die Zeile darf aber nur 27 Zeichen lang sein, um maschinenlesbar zu bleiben.

Ich habe den Vorcode daher mit einer Textmarke hinterlegt, so dass beim Anlaufen der TM der Inhalt der TM hinterlegt ist und kopiert werden kann. Aber die Übertragung in die cbo, in der man ja die Textlänge begrenzen kann, funktioniert nicht ohne manuell die Taste „Einfügen“ oder STRG V zu drücken. Fällt Dir dazu etwas ein oder gibt es einen anderen Lösungsweg?
Gruß
Wilhel

Ich habe den Vorcode daher mit einer Textmarke hinterlegt, so
dass beim Anlaufen der TM der Inhalt der TM hinterlegt ist und
kopiert werden kann. Aber die Übertragung in die cbo, in der
man ja die Textlänge begrenzen kann, funktioniert nicht ohne
manuell die Taste „Einfügen“ oder STRG V zu drücken. Fällt Dir
dazu etwas ein oder gibt es einen anderen Lösungsweg?

Hallo Wilhelm,

probiers mal so:

Sub test()
UserForm1.Show 0
Selection.GoTo What:=wdGoToBookmark, Name:=„tm“
Selection.Copy
UserForm1.ComboBox1.Text = Left(Selection.Text, 12)
End Sub

Gruß
Reinhard

1 Like

Hallo Reinhard,
danke, funktioniert genau wie gewünscht. Aber bitte erkläre mir noch, was der Code „userform1.show O“ macht. Beim Aufrufen im Einzelschrittmodus sieht man ganz kurz die Form, die dann zunächst wieder verschwindet.
Gruß
Wilhelm

hallo Wilhelm,

danke, funktioniert genau wie gewünscht.

Schon mal schön.

Aber bitte erkläre
mir noch, was der Code „userform1.show O“ macht.

? dein O sieht mir aus wie ein O, äh wie bei Ottilie, es ist aber eine Null.

Bei Userform1.Show

gilt voreingestellt, daß du damit „gebunden“ gewählt hast. Das bedeutet während die userform sichtbar ist kannst nix anderes tun in der Exceltabelle äh dem Worddokument.

D.h.
Userform1.Show
Userform1.Show 1
Userform1.Show vbModal

ist alles das Gleiche.

Willst du nun die Userform ungebunden haben, d.h. während sie angezeigt wird in der Exceltabelle oder dem Worddokument Dinge ändern
so mußt du dies tun

Userform1.Show 0
Userform1.Show vbModeless

Ungetestet (warum auch) muß man erstmal davon aus gehen daß Word-Vba da strikt ist, muß ich erstmal davon ausgehen daß der Word-vba mir auf die Finger klopft wenn ich während der Laufzeit einer userform per Vba etwas aus einem Dokument kopieren will.

Deshalb nahm ich gleich die ungebundene Form.

Gruß
Reinhard

Hallo Reinhard,
danke noch einmal für die Mühe, die Du für mich aufwendest. Magst Du mir noch zeigen, wie ich den Inhalt von Selection.copy einer Variablen i zuweise. Das würde meinen Code eleganter machen.
Gruß
Wilhelm

Magst Du mir noch zeigen, wie ich den Inhalt von
Selection.copy einer Variablen i zuweise. Das würde meinen
Code eleganter machen.

Hallo Wilhelm,

Sub test()
UserForm1.Show 0
Selection.GoTo What:=wdGoToBookmark, Name:=„tm“
Selection.Copy
UserForm1.ComboBox1.Text = Left(Selection.Text, 12)
End Sub

Sub test2()
Dim strText
UserForm1.Show 0
strText = ActiveDocument.Bookmarks(„tm“).Range
UserForm1.ComboBox1.Text = Left(strText, 12)
End Sub

Sub test3()
UserForm1.Show 0
UserForm1.ComboBox1.Text = Left(ActiveDocument.Bookmarks(„tm“).Range, 5)
End Sub

Gruß
Reinhard

1 Like

Hallo Reinhard,
ein Sternchen kommt geflogen verbunden mit neuem Dank und guten Wünschen für ein sonniges Wochenende.
Gruß Wilhelm