• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Getalnotatie in userform in Excel

Status
Niet open voor verdere reacties.

Erik191283

Gebruiker
Lid geworden
13 mei 2015
Berichten
49
Beste mensen,

Voor m'n werk ben ik bezig geweest een simpel facturatiesysteem te maken in Excel. Nu loop ik nog tegen een kleinigheid aan die op zich niet heel veel gevolgen heeft, maar wel zeer irritant is... Ik geef in een userform de gegevens in. Hierin vul ik een bedrag excl BTW in met 2 cijfers achter de komma. Het vakje BTW berekend vervolgens het BTW bedrag, hier krijg ik rustig 3 of 4 cijfers achter de komma en het vakje wat vervolgen het totaal incl BTW berekend geeft dan weer geen cijfers achter de komma... Het zal te maken hebben met getalsnotatie, maar ik zou niet weten waar te beginnen...

Weet iemand hoe ik dit op kan lossen?

Bedankt vast,

Erik
 
Een geanonimiseerde versie kan je vinden via WeTransfer
Geen idee hoe ik hier anders een bestand van 700kb te voorschijn krijg:)

Het gaat om het userform dat tevoorschijn komt als je op de knop facturen aanmaken klikt op het tabblad Startscherm. Er staat nu al code achter de genoemde cellen, maar schijnbaar doet het niet wat het moet doen...

Bedankt vast voor het kijken!
 
Als het bedrag excl. BTW, BTW, en bedrag incl. bTW in textbox 1t/m 3 staan, kun je gebruiken:
Code:
For x = 1 To 3
With UserForm1.Controls("TextBox" & x)
If IsNumeric(.Value) Then .Value = Format(.Value, "#,##0.00")
End With
Next x
 
Heb 5 verschillende regels, op de eerste regel is het TXTBedragexcl, TXTBTW en TXTBedragincl, de volgende regel is TXTBedragexcl2, TXTBTW2 en TXTbedragincl2, enzovoort... Maar misschien kan je de door jou gegeven oplossing wel per veld?
 
probeer dit:
Code:
Dim mycontrol As Object
For Each mycontrol In UserForm1.Controls
If TypeName(mycontrol) = "TextBox" Then
If IsNumeric(mycontrol.Value) Then
mycontrol.Value = Format(mycontrol.Value, "#,##0.00")
End If
End If
Next mycontrol
 
Bedankt voor je reactie, maar waar zet ik dit neer?
Neem overigens aan dat "Textbox" de naam van de specifieke textbox moet krijgen?
 
Toen ik mijn macro's plaatste, had ik jouw bericht 3 nog niet gezien; daarmee wordt de situatie anders.
Jouw vba-code kan VEEL korter, je herhaalt voortdurend zaken die je in een loop kunt onderbrengen.
En verder heb je in je code de notatie van bedragen al veranderd, zodat mijn code van hierboven geen effect heeft.
Als ik nog wat tijd vind zal ik er nog eens naar kijken, maar niet nu.
 
Als beginner met VBA had ik inderdaad al het vermoeden dat er makkelijkere / kortere methoden moesten zijn, maar dan ben je al snel blij als het gewoon werkt...
Als je tijd vind zou ik het fijn vinden als je er inderdaad naar kijkt.

Bedankt in elk geval vast voor de moeite die je tot nog toe hebt genomen!
 
Ik geef als voorbeeld deze code van jou bij het formulier 'Facturenaanmaken':
Code:
Private Sub TXTbedragexclBTW2_Change()
TXTbedragexclBTW2.Value = VBA.Replace(TXTbedragexclBTW2.Value, ".", ",")
End Sub
Vervang dat door:
Code:
Private Sub TXTbedragexclBTW2_afterupdate()
With TXTBedragexclBTW2
.Value = Format(WorksheetFunction.Substitute(.Value, ".", ","), "#,##0.00")
End With
End Sub
Op deze manier kun je de punt op het cijferblok als decimaalteken (komma) blijven gebruiken, ook in het formulier.
Doe die wijziging bij alle macro's met een change-event die horen bij het formulier Facturenaanmaken.
Verder moet je in de werkbladen alle cellen waarin bedragen (kunnen) komen, die cellen opmaken als Financieel met 2 decimalen. Dat is nu niet het geval, soms staan die opgemaakt zonder decimalen, dan weer met 1, en dan weer met 3 decimalen. Als je ze dan opvraagt in een formulier, verschijnen ze uiteraard niet in de gewenste vorm.
 
Zapatr,

Heel erg bedankt! Voor de textboxen met de BTW bedragen werkte dit direct, voor de inclusief bedragen heb ik nog wat moeten zoeken op het internet maar was ik in elk geval al goed op weg met je oplossing! Je hebt mij (en dus ook mijn collega's) erg goed geholpen!

Groet,

Erik
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan