Toon posts:

[WORD / VBA] Drop-down en auto-text

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

Verwijderd

Topicstarter
Hallo!

Ik wil in een Word document een Drop-down menu maken met als criteria dat als je een optie kiest uit het dropdown menu er automatisch op een andere locatie in het document een vaste tekst word ingevoerd (Wat afhankelijk zal zijn van de geselecteerde optie uit het dropdown menu).

Ik heb het een en ander zitten knutselen, drop-down menu etc is allemaal geen probleem. Maar het lukt me niet om de koppeling te maken van een Dropdown list optie en een ander veld in het document waar dan automatisch een tekst moet komen te staan.

Wie weet hoe je dit het beste kan aanpakken?

Alvast bedankt,
Southernsun.

  • Expecho
  • Registratie: Januari 2001
  • Laatst online: 05-05 18:27
Wat heb je al geprobeerd dan?

het lijkt mij dat je een stukje code in het OnChange (of OnIndexChanged) event opneemt dat "ergens" (bijvoorbeeld op de plaats van een bookmark) de waarde neerzet die jij wilt..

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Zoiets?
Visual Basic:
1
2
Fields(1).Code.Text = "QUOTE " & Chr(34) & "Hello" & Chr(34) & " \* MERGEFORMAT"
Fields(1).Update


Of zoiets (uit de help)?
Visual Basic:
1
2
3
Set myRange = ActiveDocument.Content
myRange.Find.Execute FindText:="hi", ReplaceWith:="hello", _
    Replace:=wdReplaceAll

[ Voor 49% gewijzigd door Daos op 11-04-2005 12:49 ]


Verwijderd

Topicstarter
Daos schreef op maandag 11 april 2005 @ 12:36:
Zoiets?
Visual Basic:
1
2
Fields(1).Code.Text = "QUOTE " & Chr(34) & "Hello" & Chr(34) & " \* MERGEFORMAT"
Fields(1).Update


Of zoiets (uit de help)?
Visual Basic:
1
2
3
Set myRange = ActiveDocument.Content
myRange.Find.Execute FindText:="hi", ReplaceWith:="hello", _
    Replace:=wdReplaceAll
Hmm,

Deze zou moeten werken:

Visual Basic:
1
2
3
Set myRange = ActiveDocument.Content
myRange.Find.Execute FindText:="hi", ReplaceWith:="hello", _
    Replace:=wdReplaceAll


Als ik de code aanpas in:

Visual Basic:
1
2
3
Set myRange = dropdown1.Content
myRange.Find.Execute FindText:="1 Critical", ReplaceWith:="A - High - Critical Service Affected", _
    Replace:=wdReplaceAll


Nu alleen een manier vinden dat hij het stukje niet vervangd, maar ergens anders plaatst... :).

iig thanks.

Verwijderd

Je bent volgens mij op zoek naar bladwijzers. Maak een bladwijzer en vervang in code in de OnClick van de combo de tekst in de bladwijzer door de door jou gewenste tekst. Moet deze actie meerdere keren uitgevoerd worden, dan dien je daarna de bladwijzer wel opnieuw te maken.

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Verwijderd schreef op maandag 11 april 2005 @ 13:38:
Je bent volgens mij op zoek naar bladwijzers. Maak een bladwijzer en vervang in code in de OnClick van de combo de tekst in de bladwijzer door de door jou gewenste tekst. Moet deze actie meerdere keren uitgevoerd worden, dan dien je daarna de bladwijzer wel opnieuw te maken.
Dat laatste is niet nodig.
Voorbeeld (bookmark heet bm):
Visual Basic:
1
2
Bookmarks("bm").Range.InsertAfter "World!"
Bookmarks("bm").Range.InsertAfter "Hello "


Maar als je in de combobox meerdere dingen na elkaar selecteerd, dan krijg je alles na elkaar in je tekst. Velden zijn makkelijker. Of je moet het met twee bookmarks doen:

edit:
Voorbeeld was fout. Heb nieuwe gemaakt

Visual Basic:
1
2
3
4
5
6
7
8
9
s1 = Bookmarks("bm1").Start
s2 = Bookmarks("bm2").Start
Range(s1, s2) = ""

t = "mijn tekst"

Bookmarks("bm1").Range.InsertAfter t
s2 = s1 + Len(t)
Bookmarks("bm2").Start = s2



[edit2]
Het is ook mogelijk bookmark van selectie te maken. Dan klopt het wel wat KingGeorge zei:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
t = "mijn tekst"
s = Bookmarks("bm").Start
e = Bookmarks("bm").End
Set r = Bookmarks("bm").Range

r.Text = t

e = s + Len(t)
r.SetRange s, e
Bookmarks.Add "bm", r

[ Voor 59% gewijzigd door Daos op 11-04-2005 14:36 ]

Pagina: 1