Format van textbox

Status
Niet open voor verdere reacties.

gast0660

Terugkerende gebruiker
Lid geworden
28 dec 2010
Berichten
4.530
Hoi,

Ik heb in een cel een waarde vb 159,72 (valuta) maar in de textbox (userform) verschijnt 160. Ik wil die waarde ook op 159,72. Ik heb al verschillende
zaken uitgeprobeerd maar ik kom er niet uit.
Iedere tip is welkom

Groet
 
Hoe vul je die textbox?
 
Hoi Edmoor
Het is een berekening van van twee andere textboxen
groet
 
Dan weten we nog niet alles.
Als de uitkomst van die berekening een Integer is dan is het logisch wat er gebeurt omdat dat altijd een heel getal is.
 
Gebruik je variabele die als Integer staan gedefinieerd?
 
Hoi Edmoor en Octafish
Code:
Private Sub CommandButton3_Click()
Dim sSheetName As String
Dim LastRow As Long
Dim sSheet As Worksheet
Dim Result_1 As Long, Result_2 As Long, Result_3 As Long, Result_4 As Long

Set sSheet = ThisWorkbook.ActiveSheet
sSheetName = ActiveSheet.Name

LastRow = Cells(Rows.Count, "F").End(xlUp).Row

 Result_1 = WorksheetFunction.SumIfs(sSheet.range("H2:H" & LastRow), sSheet.range("C2:C" & LastRow), "arbeidsloon")
 Result_2 = WorksheetFunction.SumIfs(sSheet.range("H2:H" & LastRow), sSheet.range("C2:C" & LastRow), "puinafvoer")
 TextBox12.Value = Application.Sum(Sheets(sSheetName).Columns(5))
 TextBox22.Value = Application.Sum(Sheets(sSheetName).Columns(7))
 TextBox24.Value = Application.Sum(Sheets(sSheetName).Columns(8))
 TextBox26.Value = Result_1
 TextBox27.Value = Result_2

End Sub
Textbox 26 en 27 worden afgerond De resultaten verschijnen wel correct in het werkblad
groet
 
Result_1 en Result_2 zijn gehele getallen. Maak daar eens Double van.
 
Hoi Octafish,
Bedankt
Dat is inderdaad de oplossing.

Groet
 
Kijk ook eens wat er gebeurt als je geen overbodige variabelen introduceert en de overige niet deklareert.

Code:
Private Sub CommandButton3_Click()
  With activesheet
    TextBox12.Text = Application.Sum(.Columns(5))
    TextBox22.Text = Application.Sum(.Columns(7))
    TextBox24.Text = Application.Sum(.Columns(8))
    y=.Cells(Rows.Count, 6).End(xlUp).Row
    TextBox26.Text = Application.SumIfs(.range("H2:H" & y), .range("C2:C" & y), "arbeidsloon")
    TextBox27.Text = Application.SumIfs(.range("H2:H" & y), .range("C2:C" & y), "puinafvoer")
  end with
End Sub
 
Laatst bewerkt:
Hoi Snb,
Ben net terug thuis.
Uw code geeft ook het gewenste resultaat:thumb:
is er ook een eenvoudige oplossing om de format op 2 decimalen te krijgen?
Dank u
 
daarvoor gebruiken we in VBA:

Code:
format(y,"0.00")
of
Code:
formatnumber(y,2)
of als het om geld gaat:
Code:
formatcurrency(y)
 
Laatst bewerkt:
Hoi beste Edmoor,
dank voor uw reactie
Heb al diverse mogelijkheden uitgeprobeerd o.a. round & format
Ik heb volgende code
Code:
Private Sub TextBox17_Change()
TextBox17 = Replace(TextBox17, ",", ".")
End Sub
Als ik deze textbox op 2 decimalen krijg is mijn probleem opgelost (denk ik toch) want alle andere textboxen met berekeningen (waar ik twee decimalen wil hebben) vertrekken van deze textbox

groet
 
Format is bij mijn weten alleen geschikt om het smoel van de waarde aan te passen, niet de waarde zelf. Dat zul je toch met een Round bewerking moeten doen.
 
Hoi snb, octafish,
Dank voor de reactie
@ octafish, de waarden verschijnen correct in het werkblad, alleen krijg ik in de textboxen waarden met x aantal decimalen (niet netjes en onoverzichtelijk)
@ snb , ik had al lopen klooien met format maar ik krijg foutmeldingen, ik zal waarschijnlijk weer ergens over een punt of haakje heenkijken.
Groet
 
Format is bij mijn weten alleen geschikt om het smoel van de waarde aan te passen, niet de waarde zelf. Dat zul je toch met een Round bewerking moeten doen.

Dat is onjuist. Je verwart VBA met Excel: mn. de celeigenschap 'numberformat'.
De resultante van iedere formatmethode is een tekstreeks, geen getal.
 
Maak er eens dit van:
TextBox17 = Replace(Round(TextBox17, 2), ",", ".")
 
Code:
Private Sub CommandButton3_Click()
  With activesheet
    TextBox12.Text = Application.Sum(.Columns(5))
    TextBox22.Text = Application.Sum(.Columns(7))
    TextBox24.Text = Application.Sum(.Columns(8))
    TextBox26.Text = formatnumber(Application.SumIfs(.columns(8), .columns(3), "arbeidsloon"),2)
    TextBox27.Text = formatnumber(Application.SumIfs(.columns(8), .columns(3), "puinafvoer"),2)
  end with
End Sub
 
Hoi Edmoor,
Dit is idd wat ik in gedachten had:thumb::thumb:
Hartelijk dank
 
Hoi snb,
Hartelijk dank,
Deze aanpassing zal ik morgenvroeg uitproberen:thumb:
Aan iedereen hartelijk dank voor het meedenken en oplossingen.
Groet
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan