• 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.

bedrag uit invulformulier tonen als bedrag

Status
Niet open voor verdere reacties.

otmar

Gebruiker
Lid geworden
21 jul 2009
Berichten
99
ik heb een invulvormulier gemaakt met vba

een van de velden is een bedrag

na het invullen wordt deze ingevuld in de sheet

maar als ik 32.50 als invoer wordt het getal wegezet als tekst niet als bedrag

wat doe ik verkeerd? de code die ik heb is

Code:
activecell.Value = txtBedrag.Text

en het bedrag wordt ingevuld in een textbox
 
Voeg aan je code deze regel toe:

Code:
ActiveCell.NumberFormat = "$ #,##0.00_-"

Wellicht werkt het nu wel. Succes :thumb:
 
Voeg aan je code deze regel toe:

Code:
ActiveCell.NumberFormat = "$ #,##0.00_-"

Wellicht werkt het nu wel. Succes :thumb:


dit werkt als je 32.30 doet

maar doe ik nu 32,30 dan gaat het weer verkeerd
 
hoi

probeer dit eens:

Code:
Private Sub txtBedrag_Change()
    If Right(txtBedrag.Text, 1) = "," Then txtBedrag.Text = Replace(txtBedrag.Text, ",", ".")
    ActiveCell = txtBedrag.Text
End Sub

groet sylvester
 
Laatst bewerkt:
hoi

probeer dit eens:

Code:
Private Sub txtBedrag_Change()
    If Right(txtBedrag.Text, 1) = "," Then txtBedrag.Text = Replace(txtBedrag.Text, ",", ".")
    ActiveCell = txtBedrag.Text
End Sub

groet sylvester

Ik heb in mijn invulformulier diverse textboxen staan waar een bedrag ingevuld moet worden. Dus ik zou bovenstaande 20x moeten herhalen.

Is er ook een oplossing die korter is?
 
otmar,

Ik heb wel eens gelezen dat als je iets als text wegschrijft moet vermenigvuldigen met 1.
Dit om er een getal van te maken.
Probeer het zo eens;
Code:
ActiveCell = txtBedrag.Text *1
 
otmar,

Ik heb wel eens gelezen dat als je iets als text wegschrijft moet vermenigvuldigen met 1.
Dit om er een getal van te maken.
Probeer het zo eens;
Code:
ActiveCell = txtBedrag.Text *1

als ik activecell = txtbedrag.text *1 doe dan werkt 32.30 niet (dus met punt)

ik zoek dus een eenvoudige oplossing dat je zowel
32.30 een bedrag wordt en
32,30 een bedrag wordt.

wie o wie?
 
otmar,

Ik zelf gebruik onderstaande code en heb het getest met een . of , hij maakt er een , van.
Code:
Private Sub txtPrijs_Change()
    txtPrijs = Replace(txtPrijs, ".", ",")
End Sub
Bij de code voor het wegschrijven:
Code:
ws.Cells(iRow, 6).Value = txtPrijs.Value * 1
Misschien dat het nu wel lukt.
 
otmar,

Ik zelf gebruik onderstaande code en heb het getest met een . of , hij maakt er een , van.
Code:
Private Sub txtPrijs_Change()
    txtPrijs = Replace(txtPrijs, ".", ",")
End Sub
Bij de code voor het wegschrijven:
Code:
ws.Cells(iRow, 6).Value = txtPrijs.Value * 1
Misschien dat het nu wel lukt.

dit werkt mooi. ik heb er een function van gemaakt die ik voordat de cellen worden ingevuld wordt gestart.

nu heb ik dit probleem.

als ik activecell.value = txtbedrag.value *1 doe en er is niets ingevuld, dan komt er een foutmelding.
dat kan ik oplossen door if then te doen, maar het gaat hier om een invulformulier met meerdere bedragen. en dan wordt de formule te uitgebreid.
 
otmar,

Kijk hier eens voor de oplossing van je probleem.

Je kunt ook de zoekmachine van "Helpmij" gebruiken om iets op te zoeken voor je probleem, heb ik nu voor je gedaan.
 
Laatst bewerkt:
otmar,

Kijk hier eens voor de oplossing van je probleem.

Je kunt ook de zoekmachine van "Helpmij" gebruiken om iets op te zoeken voor je probleem, heb ik nu voor je gedaan.

op dat forum wordt er vanuit gegaan dat alle velden ingevuld moeten worden.
maar dat wil ik niet. er moet alleen txtbedrag.value *1 gedaan worden als het veld ook gevuld is.
 
Laatst bewerkt:
otmar,

Als je in de code On Error Resume Next plaatst gaat het dan wel goed?
 
otmar,

Als je in de code On Error Resume Next plaatst gaat het dan wel goed?

ik heb even de pet logisch nadenken op gedaan

ik wil dus dat er een bedrag (dus niet als tekst) wordt weggeschreven als ik in een textbox invul:

36.30
36,30
""

alleen als bij de waarde eenpunt wordt gebruikt dus 36.30 dan gaat het goed

bij 36,30 wordt het bedrag als tekst weggeschreven

dit kan niet met
ActiveCell = txtBedrag.Text *1
want als er een veld leeg is ("") dan komt er een foutmelding

maar wat wel kan is de komma veranderen in een punt

txtBedrag = Replace(txtBedrag, ",", ".")

dit schrijf ik weg in een function, die ik bij het uitvoeren van het invulformulier start.


bedankt ExcelAmateur voor je hulp!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan