Inhoud van textbox laten wegschrijven als getal ipv tekst

Status
Niet open voor verdere reacties.

qelvin

Gebruiker
Lid geworden
15 apr 2012
Berichten
28
Beste VBA'ers,

Na heel wat gegoogel ben ik nog niet tot de oplossing gekomen van volgend probleem:

In het voorbeeldbestand wordt de inhoud van Textbox1 weggeschreven als getal door toevoeging van "+0"

Code:
Private Sub UserForm_Initialize()
   Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("BLAD")
'laadt de gegevens uit de database'
Me.TextBox1 = Range("lijnF1")
End Sub
Code:
Private Sub KnopOK_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("BLAD")
'plaatst de gegevens in de database'
Range("lijnF1") = Me.TextBox1 + 0
'sluit de userform'
Unload Me
MsgBox "OK"
End Sub
Code:
Private Sub Sluiten_Click()
Unload Me
End Sub

Als ik nu echter de textbox leeg laat, krijg ik een foutmelding.
Kan dit anders opgelost worden dan het toevoegen van "+0" ?
Ik hoop dat het voorbeeld duidelijk genoeg is.
 

Bijlagen

  • Map1.xlsm
    18,2 KB · Weergaven: 80
als ik die +0 weg laat uit de code werkt het gewoon, bij mij althans.
 
Maar dan wordt het getal wss weggeschreven als tekst, wat niet mag...
 
en zo?
Code:
Range("lijnF1") = CInt(TextBox1)
Range("lijnF1") = CDec(TextBox1)

ga met de cursor op het woord CInt of CDec staan en druk op F1 voor uitleg
 
Laatst bewerkt:
Code:
Range("lijnF1").Value = Val(TextBox1.Text)
 
@snb: kan ik voorkomen dat er "0,00" verschijnt in de cel bij het leeg laten van de textbox?
@passan: ik krijg met jouw code nog steeds een foutmelding
 
heb je beide regels geplaatst? als dat zo is dan mijn excuses. het is 1 van beide
 
Probeer dit eens:
Code:
Range("lijnF1").Value = IIf(IsNull(TextBox1.Text), Null, Val(TextBox1.Text))


PS code pasan:
cInt() = Converteer naar Integer
CDbl() = Converteer naar double
 
@passan

Ik krijg steeds de melding: Fout 13 tijdens uitvoering. De typen komen niet met elkaar overeen.
Bij beide codes, steeds als ik de textbox leeg laat...
 
Fout 13 tijdens uitvoering. De typen komen niet met elkaar overeen.
Dat komt omdat je een textbox niet kunt converteren naar een getal. De inhoud wel:
Code:
Range("lijnF1") = CInt(TextBox1.Text)
 
@ReneDirks: code werkt prima, maar zelfde probleem als bij code van snb: er wordt een nul weggeschreven, wat niet zo netjes is...
 
Zo misschien dan?
Code:
Range("lijnF1").Value = IIf(TextBox1.Text="", Null, Val(TextBox1.Text))
 
@ReneDirks:

PERFECT !!!
Ik zet em op opgelost, hartstikke bedankt !!!
 
Kijk ook nog eens naar de titel van je draad.
Die klopt niet met wat je wilde.
 
Inderdaad mss niet echt goed omschreven. Het was oorspronkelijk wel de bedoeling maar gaandeweg wijzigde het opzet. Toch bedankt voor de tip.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan