Opmaakvelden

Status
Niet open voor verdere reacties.

maze00

Gebruiker
Lid geworden
19 okt 2007
Berichten
32
Goedemorgen,

Ik heb een menu gemaakt in Visual Basic waarbij er 2 cellen opgeteld worden.
Dit gaat allemaal verder goed.

Alleen lukt het me niet om de opmaak aan te passen.

Bij een waarde van 10000,23 zou er 10.000,23 moeten komen te staan.
En bij een waarde van 5000,35 moet er 5.000,25 komen te staan.

Dit zou ik graag in het menu als in de brief willen hebben.

Is dit mogelijk ?
 

Bijlagen

Bij mij laat hij dat precies zien zoals je het wilt.
Kijk eens naar de instellingen voor getalnotatie in het configuratiescherm.
Of gebruik de format functie:
Format(variabele, "##.##0,00")
 
Hallo edmoor,

Bedankt voor je reactie !

Dat is inderdaad het probleem.
Als ik het scheidingsteken aanpas in het configuratiescherm van een , naar een . dan doet hij het wel goed !

Toch wil ik liever wel het scheidingsteken op de , laten staan omdat we anders andere problemen krijgen.

Kan ik dan wel de optie Format (variabele, "##.##0,00") hiervoor gaan gebruiken ?

Waar vul ik dit precies in ?
 
Maze, gezien dit nog steeds hetzelfde probleem is wat je gisteren beschreef:

Heb je nu nog een probleem in word of alleen in je VBA module?
 
Hallo Wampier,

We zijn er achter gekomen dat het probleem te maken heeft met het scheidingsteken in windows.
Ik dacht dat het ook met VBA te maken had en hem het daarom ook in deze categorie de melding geplaatst.
Ik moet nu alleen nog wteen waar ik het FORMAT commando in het script moet plaatsen.

Maar het heeft inderdaad met dezelfde melding te maken.
 
Wampier,

Ik heb de vraag in de "Word" categorie als opgelost aangevinkt.
Dit om verwarring te voorkomen.

Excuses.
 
je kunt ook zelf een functie schrijven, dan gaat het altijd goed:

Code:
Function FormatNederlands(ByVal FormatNumber As Double) As String

    Dim PreComma As Integer
    Dim PostComma As Double
    Dim result As String
               
    PreComma = FormatNumber
    PostComma = FormatNumber - PreComma
    PostComma = Round(PostComma, 2)
    PostComma = PostComma * 100
    result = Format(PreComma)

    If Len(result) > 3 Then
        result = Left(result, Len(result) - 3) & "." & Right(result, 3)
    End If
    FormatNederlands = result & "," & Format(PostComma, "##")
    
End Function

Deze functie doet geen punten bij de "miljoenen". Dat is wel mogelijk maar dan moet er een kleine aanpassing gebeuren.
 
Wampier,

Hartelijk dank !
Ik krijg hem alleen niet werkend in mijn script. (zie bijlage bovenaan deze lijst)

Misschien dat je hem daar op je juiste plek voor mij wilt zetten ?

Mijn VBA kennis is helaas maar vrij beperkt.
 
er zaten nog wat schoonheidsfoutjes in mijn script, die heb ik er even uitgehaald.

Code:
Function FormatNederlands(ByVal FormatNumber As Double) As String

    Dim PreComma As Long
    Dim PostComma As Double
    Dim result As String
               
    PreComma = FormatNumber
    If PreComma > FormatNumber Then
        PreComma = PreComma - 1
    End If
    PostComma = FormatNumber - PreComma
    PostComma = Round(PostComma, 2)
    PostComma = PostComma * 100
    result = Format(PreComma)

    If Len(result) > 3 Then
        result = Left(result, Len(result) - 3) & "." & Right(result, 3)
    End If
    FormatNederlands = result & "," & Format(PostComma, "00")
    
End Function

je kunt het inpassen op de volgende manier:

function rekenen()
Code:
Me.txt3 = FormatNederlands(iSaldo)

sub invoegen_click()
Code:
    ActiveDocument.Variables("RenteVoor").Value = FormatNederlands(iRenteVoor)
    ActiveDocument.Variables("Rente").Value = FormatNederlands(iRente)
    ActiveDocument.Variables("Saldo").Value = FormatNederlands(iSaldo)

je moet wel even de formateringsregels in je woord document aanpassen anders werkt het niet correct:

{DOCVARIABLE RenteVoor} ipv {DOCVARIABLE RenteVoor /# #}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan