VBA WORD Userform met simpele berekeningen

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • hoemper
  • Registratie: April 2014
  • Laatst online: 07-10 18:40
Mijn vraag

Ik wil in Word een Userform maken om snel een offerte te maken voor een brandverzekering.
Reden dat dit in Word is : Offerte is reeds een bestaand template.
Ik werk via Bookmarks die ik via een Userform laat invullen.

Ik heb 2 vragen :

1) de getoonde bookmarks : KapitaalGebouw , PremieExcl, Taksen & PremieIncl zouden als Currency getoond moeten worden (bv Kapitaal gebouw = € 500.000,00).
2) Ik krijg de berekening niet in orde.


Wat ik al gevonden of geprobeerd heb
Code :

Visual Basic: filename
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
Private Sub cmdOK_Click()

'declareren

    Dim KapitaalGebouw As Range
    Dim Premievoet As Range
    Dim PremieExcl As Range
    Dim Taksen As Range
    Dim PremieIncl As Range
    
'Berekeningen en invullen van bookmarks


    Set KapitaalGebouw = ActiveDocument.Bookmarks("KapitaalGebouw").Range
    KapitaalGebouw.Text = Me.TxtKapitaalGebouw

    Set Premievoet = ActiveDocument.Bookmarks("Premievoet").Range
    Premievoet.Text = Me.TxtPremievoet

    Set PremieExcl = ActiveDocument.Bookmarks("PremieExcl").Range
    Set PremieIncl = ActiveDocument.Bookmarks("PremieIncl").Range
    Set Taksen = ActiveDocument.Bookmarks("Taksen").Range
    
    With Me
    PremieExcl = (KapitaalGebouw) / 1000) * Premievoet
    Taksen = (KapitaalGebouw / 100) * 15.75
    PremieIncl = PremieExcl + Taksen
    
    End With

    Me.Repaint
    UserForm1.Hide
    
    
End Sub

Alle reacties


Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

hoemper schreef op dinsdag 26 november 2019 @ 10:09:

1) de getoonde bookmarks : KapitaalGebouw , PremieExcl, Taksen & PremieIncl zouden als Currency getoond moeten worden (bv Kapitaal gebouw = € 500.000,00).
Gebruik format()
2) Ik krijg de berekening niet in orde.
Wat krijg je niet in orde?

Sowieso is het aan te bevelen om in je code je variabelen als currency of decimal te declaren, die uit je tekst te halen, je berekeningen uit te voeren en dan de waarden terug te schrijven.

Iets als:
code:
1
2
3
4
5
6
7
8
9
10
dim a as decimal, b as decimal, c as decimal
a=val(ActiveDocument.Bookmarks("KapitaalGebouw").Range.Text)
b=...
c=...

b=a*r
c=a*s

activedocument.Bookmarks("resultaat")=format(a,formatstring) 
etc...

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