VBA Word > als niks ingevuld is in textbox / combobox document niet vullen

Status
Niet open voor verdere reacties.

makamminga

Gebruiker
Lid geworden
19 jun 2009
Berichten
12
Goedenavond,

Ik probeer erachter te komen hoe ik het volgende moet doen:

Als er in het textveld of combobox niks ingevuld is de bookmark (maar ook het liefst niet de text voor de bookmark te vullen) te deleten.

Ik heb ongeveer een idee, maar het slaat natuurlijk nergens op, omdat ik er niet veel verstand van heb:

Code:
If .FormFields("txtName").TextInput = False Then .Bookmarks("name").Delete
Else
ActiveDocument.Bookmarks.Exists("name") = True then
Selection.TypeText Text:="Name"
.Bookmarks("name").Range.Text = txtName.Value
End if
of iets als:
Code:
If .FormFields("name").TextInput = False Then .Bookmarks("name").Delete
If .FormFields("name").TextInput = True Then
Selection.TypeText Text:="Name"
.Bookmarks("name").Range.Text = txtName.Value
End If

En wat is een formfield? want als dat het gedeelte van het blok moet zijn waar je wat invoert, waarom geeft hij dan een foutmelding?


Ik hoop dat iemand snapt wat ik bedoel en mij een handje kan helpen.
 
Een formfield is een tekstveld, dat je m.b.v. de werkbalk <Formulieren> in je tekst hebt gezet. In jouw geval heb je hem de naam "txtName" gegeven. Je beide voorbeeldjes zijn overigens alletwee niet goed opgebouwd, en ze zullen dus alletwee inderdaad wel in allerlei foutmeldingen uitbarsten... De eerste codevariant zou er zo uit moeten zien:

Code:
If ActiveDocument.Bookmarks.Exists("name") = True Then
    If .FormFields("txtName").TextInput = False Then
        .Bookmarks("name").Delete
    Else
        Selection.TypeText Text:="Name: "
        .Bookmarks("name").Range.Text = txtName.Value
    End If
End If

Daarbij zit nog een probleem (misschien); deze code werkt alleen in een WITH....END WITH constructie. Je refereert met .Bookmarks aan een object dat je eerder hebt geopend met WITH. En dat stukje mis ik nog in de code.
 
Solved

Ik heb het volgende eindelijk aan de praat gekregen:

.Bookmarks("name").Range.Text = txtName.Value
If .Bookmarks("name").Range.Text = txtName.Value >= 0 Then
.Bookmarks("name").Range.InsertBefore Text:="Name: "
Else
If .Bookmarks("name").Empty = True Then
.Bookmarks("name").Select
.Bookmarks("\para").Select
Selection.Delete
End If
End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan