PDA

Vollständige Version anzeigen : VBA - Formularfelder anspringen und abfüllen


caro
28.06.2001, 15:04
Guten Tag

Ausgangslage: Ich habe ein Formular erstellt (als Vorlage). Darin enthalten sind Formularfelder (nur Textfelder,
keine Drop-Down etc.). Das Formular ist in Abschnitte unterteilt und geschützt. Nun habe ich per VBA ein Userform
erstellt, welches automatisch startet, sobald ein neues Dokument auf Basis der Vorlage ertellt wird.

Frage: Wie kann ich die Formularfelder anspringen und mit den im Userform erfassten Daten abfüllen?

Bitte um schnelle Hilfe.

Vielen Dank

Mit freundlichen Grüssen

caro

Stefan Kulpa
29.06.2001, 04:37
<font face="Verdana" size="2">Hallo Caro,

leider muss ich auch bei diesem Beitrag auf die <a href="http://www.ms-office-forum.net/forum/netiquette.php" target="_blank">Netiquette</a> verweisen. Es ist einfach sinnvoller, die Fragen entsprechend der Themen im dazugehörigen Forum zu stellen. Die Wahrscheinlichkeit einer Antwort dürfte dann deutlich höher sein, da die wenigsten Foren-Teilnehmer in "fachfremde" Foren wechseln, um Fragen zu beantworten.

Für viele Teilnehmer scheint der Unterschied zwischen VB und VBA nicht ganz klar zu sein, obwohl es da massive Unterschiede gibt. Es gibt nicht nur sprachliche Unterschiede, sondern Lösungen werden z.T. völlig unterschiedlich angegangen.

Da bisher niemand auf diese Frage geantwortet hat (und Word-VBA) auch nicht mein Thema ist, nehme ich Dir die Arbeit ab, und verschiebe es in das Word-Forum (es geht doch um Word?).</font>

Pepi
29.06.2001, 06:46
Hallo caro,
warum hast du überhaupt noch Formularfelder in deinem Doc.? Wenn ein Abschnitt geschützt ist und wir ihn entschützen, wollen wir gezielt bestimmte Stellen anspringen. Jedes Formularfeld hat einen Textmarkennamen (TM) erhalten; Textmarken kann ich von vornherein in jedem Doc. anlegen. Da es (wieder einmal) Probleme gibt, wenn ich den TM-Namen in einem geschützten Abschnitt aufsuchen und das dortige Feld überschreiben möchte (bei einem aufgezeichneten Makro geht das dagegen anstandslos!), würde ich entweder die Deaktivierung der Formularfelder vorschlagen oder eben nur die Verwendung von TM.
Wie dem auch immer sei: Wir haben also TM-Stellen. Nach Beendigung deiner Userform könnte ich mir folgenden Code vorstellen:

Private Sub CommandButton1_Click()
ActiveDocument.Unprotect 'Schutz aufheben
TM_schreiben "Name", TextBox1.Value
TM_schreiben "Adr", TextBox2.Value
TM_schreiben "Ort", TextBox3.Value
'Jetzt ggf. wieder den Schutz für div. Abschnitte setzen...
ActiveDocument.Sections(1).ProtectedForForms = True
ActiveDocument.Sections(2).ProtectedForForms = False
ActiveDocument.Protect Password:="", NoReset:=False, Type:= _
wdAllowOnlyFormFields
End Sub
Sub TM_schreiben(TMName, Inhalt)
ActiveDocument.Bookmarks(TMName).Select 'TM anspringen
'Dort das hinschreiben, was in Userform in entsprechendem Steuerelement eingegeben wurde
Selection.TypeText Inhalt
End Sub

Ich hoffe, dass dich das weiterbringt!
Gruß, Matthias