Word Pflichtfeld in Formular möglich?

  • #1
N

NDTschuess

Mitglied
Themenersteller
Dabei seit
01.06.2004
Beiträge
7
Reaktionspunkte
0
Ort
Hamburg
Hallo,

ich möchte in einem Word-Formular ein Textfeld als Pflicht definieren.

Sofern dieses Feld nicht ausgefüllt wird, soll ein Drucken nicht möglich sein.

Macro wäre cool, JavaScript möglichst nicht (da deaktiviert bei einigen Anwendern).

Versionen: Word 2000,2003,2007
 
  • #2
Hallo NDTschuess,

nehmen wir an, dein Textfeld hat den Namen TextBox1.

Dann ist folgendes Vorgehen angesagt:

a) Word-Dokument öffnen
b) mit Alt+F11 VB-Editor öffnen
c) Klassenmodul für BeforePrint erstellen
c1) Klassenmodul einfügen
c2) Klassenmodul umbenennen in MeineEreignisKlasse
c3) folgenden Code in dem Klassenmodul einfügen
Code:
Public WithEvents App As Word.Application

Private Sub App_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
 If ThisDocument.TextBox1.Text =  Then Cancel = True
End Sub
Falls die TextBox anders heissen sollte als TextBox1, Namen anpassen

d1) Modul einfügen
d2) folgenden Code im modul speichern
Code:
Option Explicit
Option Private Module
Dim MEK As New MeineEreignisKlasse

Sub Register_Event_Handler()
  Set MEK.App = Word.Application
End Sub

e) folgende Code in der Code-Seite des Dokuments (ThisDocument) speichern:
Code:
Private Sub Document_Open()
 Call Register_Event_Handler->Ereignisklasse verbinden
End Sub

f) VB-Editor schliessen
g) Dokument speichern und schliessen

h) Dokument wieder öffnen und Drucken ausprobieren
(Wenn die TextBox1 leer ist, sollte kein Ausdruck erfolgen)

Gruß Matjes :)
 
  • #3
Moin und vielen Dank.

Jedoch habe ich ein Problem, da folgende VBA-Fehlermeldung kommt:
Fehler beim Kompilieren
Methode oder Datenobjekt nicht gefunden.
Name ist TextBox1 und diese wurde auch im Formularfeld(Textfeld) so benannt im Feld Textmarke.

In der folgenden Zeile wird .TextBox1 markiert bei der Fehlermeldung.
If ThisDocument.TextBox1.Text = Then Cancel = True

Hast du auch dafür eine Lösung?
 
  • #4
Hallo NDTschuess,

die Fehlermeldung besagt, dass auf dem Dokument kein Element vom Typ TextBox mit dem Namen TextBox1 liegt. Schick mir doch mal deine Datei an mein mail-addy. Dann schau ich mal wie man das korrigieren kann.

Gruß Matjes :)
 
  • #5
Hallo Matjes,

das Angebot habe ich dankend angenommen und dir die Datei per Mail zugeleitet.

Das Forum und die Homepage werde ich lobend erwähnen. Macht weiter so.
 
  • #6
Hallo NDTschuess,

also es ist ein Formularfeld mit der Textmarke TextBox1.

Mit folgendem Code im Klassenmodul sollte es dann funktionieren

Gruß Matjes :)
Code:
Option Explicit
Public WithEvents App As Word.Application

Private Sub App_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
 
 Dim sText As String, s As String, lLen As Long, x As Long, lASCII As Long
 
 sText = ThisDocument.Bookmarks(TextBox1).Range.Text
 lLen = Len(sText)
 
->Leerzeichen und
 For x = lLen To 1 Step -1
  s = Mid(sText, x, 1)
  lASCII = Asc(s)
  Select Case lASCII
   Case 32
    sText = Left(sText, x - 1) & Right(sText, Len(sText) - x)
   Case Else
  End Select
 Next
 
 If sText =  Then Cancel = True
End Sub
 
  • #7
Moin Matjes,

noch einmal: Vielen Dank. Klappt super.
 
Thema:

Word Pflichtfeld in Formular möglich?

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.836
Beiträge
707.957
Mitglieder
51.489
Neuestes Mitglied
DonMartin
Oben