Rekenen met tekstvakken

Status
Niet open voor verdere reacties.

ReilingJ

Gebruiker
Lid geworden
31 mei 2007
Berichten
168
Hallo,
Ik ben nieuw op dit forum. Ook nieuw in VBA ben ik een stuk flink stuk gevorderd met een VBA programma. Jammer genoeg krijg ik het volgende probleem niet opgelost:

Ik ben een Userformulier in VBA aan het maken voor een Worddocument.
Mijn waarschijnlijk eenvoudig probleem: ik heb 3 tekstvakken Bv. "TxtWaarde1"; "TxtWaarde2"; en "TxtResult"
Mijn bedoeling is om in de tekstvakken "TxtWaarde1" (opmaak= ha.) en TxtWaarde2 (opmaak in valuta zonder € teken) waarden in te voeren.

Vervolgens verwacht ik dat in "TxtResult" in het userform de vermenigvuldiging van "TxtWaarde1" en "TxtWaarde2" zichtbaar wordt in 2 decimalen achter de komma (double). Ook mag het niet mogelijk zijn om het tekstvak "TxtResult" te muteren.

Dit kan ik realiseren door een knop "Private Sub cmdBerekenen_Click()" te gebruiken maar dat is niet mijn bedoeling.

Wat ik wil is dat na het invullen en bij het verlaten van de velden "TxtWaarde1" en "TxtWaarde2" telkens het in "TxtResult" zichtbaar wordt. En, uiteraard , bij het verlaten van het formulier moet de berekening ook in het document op de goede plaats in een tabel worden geplaatst.

Anders gesteld: ik wil met behulp van een userform een tabel in een document gaan vullen waarbij tevens op het userform steeds de uitkomst van de vermenigvuldiging van twee velden zichtbaar wordt.

Jan
 
Laatst bewerkt:
Ik werk met Visual Basic 6.0, heb verder eigenlijk weinig weet van de andere! Maar is VBA de plugintool bij Word?

Grtz, Ronald!
 
Oke ik heb er is even naar gekene, maar is bijna hetzelfde! (Komt op hetzelfde neer). Ik zal er van het weekend wel even voor je naar kijken, heb deze week weining tijd. Als er nog andere problemen optreden, post het! Misschien dat ik, iemand, je er mee kan helpen!:thumb:

Succes ermee,

Grtz, Ronald!
 
Oke ik heb er is even naar gekene, maar is bijna hetzelfde! (Komt op hetzelfde neer). Ik zal er van het weekend wel even voor je naar kijken, heb deze week weining tijd. Als er nog andere problemen optreden, post het! Misschien dat ik, iemand, je er mee kan helpen!:thumb:

Succes ermee,

Grtz, Ronald!
 
Oke ik heb er is even naar gekene, maar is bijna hetzelfde! (Komt op hetzelfde neer). Ik zal er van het weekend wel even voor je naar kijken, heb deze week weining tijd. Als er nog andere problemen optreden, post het! Misschien dat ik, iemand, je er mee kan helpen!:thumb:

Succes ermee,

Grtz, Ronald!

Uh, nee dat is het wel,
groet Jan
 
Uh, nee dat is het wel,
groet Jan

Na lang zoeken en combineren heb Ik zelf heb de oplossing deels gevonden zie onder:

Private Sub TxtOpp1_AfterUpdate()

Call TxtPrPerc1_AfterUpdate
Dim Ha1S As String
Dim Ha1 As Double

End Sub


Private Sub TxtPrHa1_AfterUpdate()

Call TxtPrPerc1_AfterUpdate
Dim PrHa1S As String
Dim PrHa1 As Double


End Sub

Private Sub TxtPrPerc1_AfterUpdate()

Dim PrPerc1S As String
Dim PrPerc1 As Currency
Ha1S = TxtOpp1.Text
Ha1 = Val(Ha1S)
PrHa1S = TxtPrHa1.Text
PrHa1 = Val(PrHa1S)
PrPerc1 = Math.Round(Ha1 * PrHa1, 2)
PrPerc1S = Str(PrPerc1)

TxtPrPerc1 = PrPerc1S

End Sub


Private Sub TxtOmsl1_AfterUpdate()

Call TxtPercOmsl1_AfterUpdate
Dim Omsl1S As String
Dim Omsl1 As Double

End Sub

Private Sub TxtPercOmsl1_AfterUpdate()

Dim PercOmsl1S As String
Dim PercOmsl1 As Double
Ha1S = TxtOpp1.Text
Ha1 = Val(Ha1S)
Omsl1S = TxtOmsl1.Text
Omsl1 = Val(Omsl1S)
PercOmsl1 = Math.Round(Ha1 * Omsl1, 2)
PercOmsl1S = Str(PercOmsl1)
TxtPercomsl1 = PercOmsl1S

End Sub

Van mijn vraag blijft nog wat over: mijn invulformulier bevat meerdere regels waarvan bovenstaande de eerste is. De in te vullen regels varieren per keer dat het formulier opnieuw word gebruikt. Zodra er geen nieuwe regel meer komt (PrPerc=0) moet het resultaat naar een tabel in Word worden geschreven. Uiteraard keurig in ha.da.ca en in valuta (alles 2 cijfers achter de komma)

Dus hulp is nog zeer gewenst,

groet Jan.
 
Afronden op 2 decimalen kun je doen door gebruik te maken van Round(...)
Als het bedrag ergens uit komt en je wilt het in een Textbox zetten bijvoorbeeld, dan zet je eerst neer welke je af wil ronden en daarna op hoeveel cijfers achter de komma.

Dub bijvoorbeeld:

Code:
Private Sub CommandButton1_Click()
TextBox2.Text = Round(TextBox1.Text, 2)
End Sub

Greetz, Ronald!
 
Afronden op 2 decimalen kun je doen door gebruik te maken van Round(...)
Als het bedrag ergens uit komt en je wilt het in een Textbox zetten bijvoorbeeld, dan zet je eerst neer welke je af wil ronden en daarna op hoeveel cijfers achter de komma.

Dub bijvoorbeeld:

Code:
Private Sub CommandButton1_Click()
TextBox2.Text = Round(TextBox1.Text, 2)
End Sub

Greetz, Ronald!

Het afronden moet plaats vinden bij het plaatsen in de Cell (WordTabel)
zoiets als onderstaand maar dan incl afronden (?) Bij voorkeur geen extra TextBox2 aanmaken. Kan dat(?)

Selection.SelectCell
Selection.TypeText Me.TxtPrPerc1
 
Misschienn in een String zetten, en vervolgens die (afgeronde) string in de Cell zetten?

Ronald.
 
Ronald,
ik was mijn mail aan het opschonen en kwam jouw bericht tegen waar ik, sorry, niet meer op gereageert heb.
Mijn probleem heb ik op de aangegeven wijze opgelost, achteraf gezien simpel.

Alsnog mijn dank voor reactie,

Jan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan