[Word 2003] velden in cellen plaatsen dmv VBA

Pagina: 1
Acties:

  • Devilmen
  • Registratie: December 2005
  • Laatst online: 07-06 15:54
Hoi allemaal,

ik heb een sjabloon gemaakt met 3 tabellen. Wanneer ik het sjabloon open komt een UserForm met de vraag hoeveel rijen ik wil invoegen. Wanneer ik een aantal rijen opgeef en op de knop "Rijen aanmaken" klik worden de rijen aangemaakt.
In de cellen van de rijen wil ik invoervelden aanmaken.
Tot nu toe ben ik zover dat ik cijfertjes in de cellen geplaatst krijg (i=i+1, in onderstaande code).
Nu wil ik ipv cijferstjes invoervelden (Formfields).
edit:

de eerste rij van tabel 3 bevat vaste gegevens. vanaf rij 2 dienen de verlden te komen.

Wie weet raad?

Alvast bedankt voor de genomen moeite en tijd. _/-\o_

Mvg,
devilmen })

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Private Sub btnMakeRow_Click()
'toevoegen van x aantal rijen aan tabel
Dim intNmbOfRow As Integer
Dim MyCheck As Long
Dim usrVraag
Dim tblNew As Table
Dim rowNew As Row
Dim intRowCount As Integer

MyCheck = IsNumeric(txtRow.Text) 'Controle of ingevuld aantal wel een getal is

If MyCheck = False Then 'wanneer leeg of geen getal is verschijnt melding
  usrVraag = MsgBox("U heeft geen rijen toegevoegd." + vbCrLf + "Weet U dit zeker dat U wilt doorgaan zonder rijen aan te maken?", vbQuestion + vbOKCancel, "Rijen toevoegen")
  If usrVraag = vbOK Then 'Ok voor geen rijen toevoegen
    Unload frmAantalRijen
  Else 'wel rijen toevoegen (annuleren)
    Unload frmAantalRijen
    ThisDocument.Document_New
  End If
  
'intNmbOfRow = 1 'bij fout maar 1 rij invoeren
  Else
    intNmbOfRow = txtRow.Text 'aantal rijen
   
    Set tblNew = ActiveDocument.Tables(3) 'getal 3 geeft aan dat bij de 3de tabel de rijen toegevoegd dienen te worden
        
    intRowCount = 0
    Do Until intRowCount = intNmbOfRow
      Set rowNew = tblNew.Rows.Add 'aanmaken nieuwe rij
        For Each acell In rowNew.Cells
          i = i + 1
          acell.Range.Text = i
        Next acell
      intRowCount = intRowCount + 1
      If intRowCount > intNmbOfRow Then Exit Do
    Loop

'Gebruik de methode Add met het FormFields-object om een formulierveld voor tekst toe te voegen. In het volgende voorbeeld wordt een formulierveld voor tekst toegevoegd aan het begin van het actieve document. Vervolgens wordt de naam van het formulierveld ingesteld op 'Voornaam'.
'    Set ffield = ActiveDocument.FormFields.Add( _
'        Range:=ActiveDocument.Tables(3).Range, _
'        Type:=wdFieldFormTextInput)

End If

'frmAantalRijen afsluiten
Unload frmAantalRijen

End Sub

[ Voor 16% gewijzigd door Devilmen op 12-12-2005 16:56 ]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Visual Basic:
1
acell.Range.Text = i 

vervangen door:
Visual Basic:
1
ActiveDocument.FormFields.Add Range:=acell.range,Type:=wdFieldFormTextInput

Logisch toch? Je vervnagt de regel die er een cijfertje inzet door de regel die een formfield plaatst. :?

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • Devilmen
  • Registratie: December 2005
  • Laatst online: 07-06 15:54
Hoi Niesje,
is idd logisch nu ik het zo zie.
Ik was niet op het id gekomen om "acell.range" als range te gebruiken.
Ik was aan zoeken naar een soort van cellen tellen of iets dereglijks.

Maar goed. Hartelijk dank voor de oplossing.

Mvg,
devilmen })