[MS Word 2000] Kan ik dit met VBA voorelkaar krijgen?

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

  • DPLuS
  • Registratie: April 2000
  • Niet online
Hoi,

Ik wil in een eigengemaakte Word-template waarden automatisch laten invoeren.
Waarden die de gebruiker van te voren via een input-box invoert. (Hij definieert bijv. 1 keer zijn naam en dat wordt dan 3 keer in het word document "geplakt").
Is dit überhaupt mogelijk?

Ik ben helemaal niet bekend met dit gedeelte van Word, dus als iemand me een beetje op weg kon helpen zou ik al heel gelukkig zijn.

Ik zag bij het menu'tje invoegen al iets staan met velden, dus misschien dat ik via VBA wat tekst kan plakken in die "speciale" velden...

Verwijderd

ik weet alleen dat het wel kan :) Hier wordt het gebruikt met een offerte database

[ Voor 43% gewijzigd door Verwijderd op 05-12-2003 13:22 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Ja, 't is mogelijk door middel van bookmarks te gebruiken.

Je maakt bookmarks aan voor de velden die je automatisch wilt laten invullen, en dan kan je met deze code die bookmark invullen:
code:
1
ThisDocument.Bookmarks.Item(1).Range.Text


Waarbij die 1 de index van je bookmark is. (En ik geloof dat je ook de naam van de bookmark kunt opgeven ipv de index).

https://fgheysels.github.io/


  • Remco
  • Registratie: Januari 2001
  • Laatst online: 15:56
zekers met namen:
Visual Basic:
1
2
    Selection.GoTo What:=wdGoToBookmark, Name:="Onderwerp"
    Selection.TypeText Text:=Onderwerp

onderwerp is een textbox.
Zit dit achter je "OK" knop, en maak het bookmark onderwerp aan.
Weet alleen niet of je meerdere dezelfde bookmarks mag toevoegen.

The best thing about UDP jokes is that I don't care if you get them or not.


  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 14:47
Hier de collega van talle ;)

code:
1
2
3
4
5
6
'via access -->
    .ActiveDocument.Bookmarks("klantnaam").Select
    .Selection.Text = (CStr(rstklant!Klantnaam))
'via Word?? -->
    .ActiveDocument.Bookmarks("jouw bookmark naam").Select
    .Selection.Text = ("output van jouw inputbox, zoiets als InputBox("waarde")")

[ Voor 13% gewijzigd door Masch op 05-12-2003 14:40 ]

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


  • Elissen
  • Registratie: Januari 2000
  • Laatst online: 12-03 16:55
Namen van bookmarks moeten uniek zijn. Ik denk dat het wellicht handiger is om te zoeken naar een tekst en deze te vervangen.

code:
1
2
3
4
5
6
7
Sub ReplaceDemo()
Dim achternaam As String
    achternaam = InputBox("Uw naam")
    If Len(Trim(achternaam)) = 0 Then Exit Sub
    Selection.Find.Execute findtext:="%achternaam%", Forward:=True, _
      Wrap:=wdFindContinue, ReplaceWith:=achternaam, Replace:=wdReplaceAll
End Sub

  • DPLuS
  • Registratie: April 2000
  • Niet online
Jongens, alvast bedankt voor jullie reacties, alleen nu wil ik dus zo'n bookmark veld toevoegen, alleen weet ik niet hoe dat ding heet in de nederlandse versie.
Ik dacht zelf aan DOCVARIABLE of QUOTE, of zit ik compleet fout nu??

  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 14:47
Ja!

Kijk eens naar het menu invoegen -- bladwijzer

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


  • DPLuS
  • Registratie: April 2000
  • Niet online
Bedankt, ik heb het tot nu als volgt werkende:

Een formulier met een textbox vraagt om input, en de waarde van textbox1.text gooi ik daarna in de bookmark via:
code:
1
2
Selection.GoTo What:=wdGoToBookmark, Name:="test"
Selection.TypeText Text:=textbox1.text


Alleen, hoe sluit ik dat formulier nu af?
Want als ik:
code:
1
me.hide


of

code:
1
unload me


doe, sluit Word alles af, dus ook het document zelf...

  • Remco
  • Registratie: Januari 2001
  • Laatst online: 15:56
UserForm1.Hide

Selection.GoTo What:=wdGoToBookmark, Name:="Aan"
Selection.TypeText Text:=Aan

Selection.EndKey Unit:=wdStory

Unload UserForm1

The best thing about UDP jokes is that I don't care if you get them or not.

Pagina: 1