Re: Wenn-Dann in Word Formular...
Hallo,
also wie im Betreff schon erwähnt brauche ich Hilfe für ein
Formular.
Ich habe ein Formular erstellt, in dem man mehrere zur Auswahl
stehende Kästchen ankreuzen kann. Das letzte Kästchen heißt
_____________, und soll, falls es nicht angekreuzt ist, auch
weiter als Strich angezeigt werden. Falls man es aber
ankreuzt, soll man Anstelle der Linie etwas eintragen können
und der Strich soll verschwinden. Also quasi eine
Wenn-Dann-Anweisung.
Hallo Christoph,
ich nehme an, das du ein Word-Formular meinst und kein VBA-Userform.
Ich hab da jetzt etwas herumprobiert. Ich verwende WORD97; sollte aber kein Problem bei neueren Versionen sein. Mit dem Ergebnis bin ich nicht 100%-ig zufrieden, aber es ist akzeptabel. Die nachfolgenden Makros führen Aktionen aus, wenn das Kontrollkästchen per Maus angeklickt oder per Tasten angesteuert wird und wenn das Eingabefeld verlassen wird. Unter Option muß man für die Formularfelder die Makros bei Eintritt bzw. Verlassen des Feldes einstellen. Die Namen der Formularfelder muß Du natürlich an deine Verhältnisse anpassen.
"Text1" und "Checkbox1" sind die von mir verwendeten Namen der Formularfelder im Beispiel.
Sub Textbox1_verlassen()
' Aktionen, wenn das Textfeld verlassen wird
If ActiveDocument.FormFields.Item("Text1").Result = "" Or _
ActiveDocument.FormFields.Item("Text1").Result = _
ActiveDocument.FormFields.Item("Text1").TextInput.Default Then
ActiveDocument.FormFields.Item("Checkbox1").Result = False
ActiveDocument.FormFields.Item("Text1").Result = _
ActiveDocument.FormFields.Item("Text1").TextInput.Default
End If
End Sub
Sub Checkbox1Klick()
' Aktionen, wenn das Kontrollkästchen angeklickt wird
If ActiveDocument.FormFields.Item("Checkbox1").Result = True Then
'Kontrollkästchen ist aktiviert
If ActiveDocument.FormFields.Item("Text1").Result = _
ActiveDocument.FormFields.Item("Text1").TextInput.Default Then
ActiveDocument.FormFields.Item("Text1").TextInput.Clear
End If
Selection.GoTo What:=wdGoToBookmark, Name:="Text1"
Else
'Kontrollkästchen ist deaktiviert
ActiveDocument.FormFields.Item("Text1").Result = _
ActiveDocument.FormFields.Item("Text1").TextInput.Default
End If
End SubBei Mausbedienung funktioniert alles optimal, Bei Bedienung mit der Tastatur muß man ggf. den Inhalt des Eingabefeldes löschen, wenn man die Markierung wieder aufheben möchte.
Als kleine Hilfe schicke ich Dir eine Beispiel-Datei mit weiteren Erläuterungen.
Gruß
Franz