Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[VBA / Word 2000] Fields of bookmarks wijzigen

Pagina: 1
Acties:
  • 276 views sinds 30-01-2008
  • Reageer

  • Rvanlaak
  • Registratie: Juni 2005
  • Laatst online: 27-11 21:40
Op een of andere manier lukt het niet om iets te maken wat aan mijn eisen voldoet. Ik heb een Word document, en heb hier door middel van Visual Basic een UserForm in gemaakt waarin een aantal waarden kunnen worden ingevoerd.

Nu wil ik dus die waarden in het Word document tonen, dus ik heb een {FORMTEXT} tag aangemaakt, welke een bookmark waarde heeft. Ik wil dus nu door middel van onderstaande code deze tag wijzigen:


Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    If Klasse1.Value = True Then
        ActiveDocument.Bookmarks("klasse").Select
        Selection.Text = Klasse1.Caption
    End If
    If Klasse2.Value = True Then
        ActiveDocument.Bookmarks("klasse").Select
        Selection.Text = Klasse2.Caption
    End If
    If Klasse3.Value = True Then
        ActiveDocument.Bookmarks("klasse").Select
        Selection.Text = Klasse3.Caption
    End If
    If Klasse4.Value = True Then
        ActiveDocument.Bookmarks("klasse").Select
        Selection.Text = Klasse4.Caption
    End If


Dit lukt allemaal correct, maar als ik hiernaa nog eens het venster oproep om de klasse te veranderen doet deze het niet meer omdat de {FORMTEXT} tag in het Word document weg is!

Nu heb ik eens in plaats van het maken van een .Select dit geprobeerd:

Visual Basic:
1
2
3
If Klasse2.Value = True Then
        ActiveDocument.Bookmarks("klasse")Range.Text := Klasse2.Caption
    End If


Dit werkt ook niet, door een expressie error... Mijn vraag is dus hoe ik (in plaats van het maar eenmalig kunnen toewijzen door .Select) met dat UserForm constant waarden kan toewijzen en vervangen...

  • Rvanlaak
  • Registratie: Juni 2005
  • Laatst online: 27-11 21:40
Hmm,, is het bijvoorbeeld niet mogelijk om de default waarde van dat {TEXTFORM} veld te wijzigen, in plaats van het wijzigen van de bookmark?

Is het alleen mogelijk om door middel van Select deze bookmark te selecteren, en er dan bewerkingen mee uit te voeren? Anders zou ik wel een manier willen weten om die selectie (ik heb dan dat {TEXTFORM} geselecteerd) te vervangen met een nieuwe {TEXTFORM} tag, maar dan met een andere, ofwel de goede standaardtekst!

  • Rvanlaak
  • Registratie: Juni 2005
  • Laatst online: 27-11 21:40
Een daarbij komend probleem is ook nog dat er maar één instantie van de geselecteerde {TEXTFORM} tags wordt geselecteerd. Als er dus meerdere waarden van in het document staan dan word er maar eentje van geupdate.

  • Rvanlaak
  • Registratie: Juni 2005
  • Laatst online: 27-11 21:40
.

[ Voor 99% gewijzigd door Rvanlaak op 23-10-2007 10:17 . Reden: dubbel ]


  • Rvanlaak
  • Registratie: Juni 2005
  • Laatst online: 27-11 21:40
Nu heb ik dus een functie gevonden welke de bookmark weer daarna toevoegd, maar hier zit op onverklaarbare wijze nog een fout in:

Visual Basic:
1
2
3
4
5
6
Sub UpdateBookmark(BookmarkToUpdate As String, TextToUse As String)
    Dim BMRange As Range
    Set BMRange = ActiveDocument.Bookmarks(BookmarkToUpdate).Range
    BMRange.Text = TextToUse
    ActiveDocument.Bookmarks.Add BookmarkToUpdate, BMRange
End Sub

Verwijderd

je bent hier 2 systemen door mekaar aan het halen.
als je bookmarks gebruikt, dan moet je deze via het wordmenu invoegen->bladwijzer definiëren. de routine om de bladwijzer na invullen opnieuw toe te voegen zal dan correct werken.
als je veld gebruikt ({formtext}), dan benader je deze via de formfields collectie.
hier zijn er 2 mogelijkheden:
als je het document beveiligt voor velden, gebruik je de default eigenschap om het veld in te vullen, anders kan activedocument("naamveld").range.text gebruikt worden (wat het veld wist).
Pagina: 1