Hei!
Olen yrittänyt vaikka millä lailla muuttaa kokonaislukuja desimaaliluvuiksi, mutta en ole onnistunut. Ongelma on siinä, että minulla on Excelin VBA:n lomake, jossa syötän lukuja taulukosta ja lasken niistä tietyn prosentin, ja sitten se tietty luku tulostuu Labeliin, jossa vielä näkyy desimaalit, mutta kun sitten siirrän sen luvun takaisin taulukkoon, niin silloin se taulukossa näkyy vain kokonaislukuna, olen muotoillut taulukon solujen luvut kahden desimaalin tarkkuudella eli se ei ole syynä, vaan minun pitäisi saada muutettua ohjelmassa olevat luvut eri tyyppisiksi, ja ajattelin, että Currency tietotyyppi voisi olla paras.
Tässä koodinpätkiä selvennykseksi:
Private Sub CommandButton1_Click()
Range("E27").Select
TextBox1 = Range("E27")
End Sub
Private Sub CommandButton3_Click()
Label1.Caption = Val(TextBox1) * Val(TextBox2) / 100
Range("J35") = TextBox2 & "%"
End Sub
Private Sub CommandButton4_Click()
TextBox2 = " "
End Sub
Private Sub CommandButton6_Click()
Range("E30").Select
TextBox3 = Range("E30")
End Sub
Private Sub CommandButton1_Click()
Range("E27").Select
TextBox1 = Range("E27")
End Sub
Private Sub CommandButton3_Click()
Label1.Caption = Val(TextBox1) * Val(TextBox2) / 100
Range("J35") = TextBox2 & "%"
End Sub
Private Sub CommandButton6_Click()
Range("E30").Select
TextBox3 = Range("E30")
End Sub
Private Sub CommandButton7_Click()
Label2.Caption = Val(TextBox3) * Val(TextBox4) / 100
Range("J30") = TextBox4 & "%"
End Sub
Private Sub CommandButton11_Click()
Range("I35") = Val(Label1)
End Sub
Private Sub CommandButton12_Click()
Range("E30") = Val(Label2)
Range("I30") = Val(Label2)
End Sub
Private Sub CommandButton16_Click()
Range("I31") = Val(Label3)
End Sub
Private Sub CommandButton11_Click()
Range("I35") = Val(Label1)
End Sub
Private Sub CommandButton12_Click()
Range("E30") = Val(Label2)
Range("I30") = Val(Label2)
End Sub
Eli tuo Val-funktio ei käy tähän, koska sen desimaalierotin on piste ja Suomessa taas käytetään pilkkua, mutta en ole saanut millään koodilla muutettua tuota oikein, muuten tämä ohjelma kyllä toimii, mutta ne desimaaliluvut vain eivät, joita tarvitsisin ehdottomasti tässä lomakkeessa. Joten oisiko joku niin ystävällinen ja auttaisi minua tässä ongelmassa. Olisin ikionnellinen siitä, kiitos!
tv. epätoivoinen harrastelija
Olen yrittänyt vaikka millä lailla muuttaa kokonaislukuja desimaaliluvuiksi, mutta en ole onnistunut. Ongelma on siinä, että minulla on Excelin VBA:n lomake, jossa syötän lukuja taulukosta ja lasken niistä tietyn prosentin, ja sitten se tietty luku tulostuu Labeliin, jossa vielä näkyy desimaalit, mutta kun sitten siirrän sen luvun takaisin taulukkoon, niin silloin se taulukossa näkyy vain kokonaislukuna, olen muotoillut taulukon solujen luvut kahden desimaalin tarkkuudella eli se ei ole syynä, vaan minun pitäisi saada muutettua ohjelmassa olevat luvut eri tyyppisiksi, ja ajattelin, että Currency tietotyyppi voisi olla paras.
Tässä koodinpätkiä selvennykseksi:
Private Sub CommandButton1_Click()
Range("E27").Select
TextBox1 = Range("E27")
End Sub
Private Sub CommandButton3_Click()
Label1.Caption = Val(TextBox1) * Val(TextBox2) / 100
Range("J35") = TextBox2 & "%"
End Sub
Private Sub CommandButton4_Click()
TextBox2 = " "
End Sub
Private Sub CommandButton6_Click()
Range("E30").Select
TextBox3 = Range("E30")
End Sub
Private Sub CommandButton1_Click()
Range("E27").Select
TextBox1 = Range("E27")
End Sub
Private Sub CommandButton3_Click()
Label1.Caption = Val(TextBox1) * Val(TextBox2) / 100
Range("J35") = TextBox2 & "%"
End Sub
Private Sub CommandButton6_Click()
Range("E30").Select
TextBox3 = Range("E30")
End Sub
Private Sub CommandButton7_Click()
Label2.Caption = Val(TextBox3) * Val(TextBox4) / 100
Range("J30") = TextBox4 & "%"
End Sub
Private Sub CommandButton11_Click()
Range("I35") = Val(Label1)
End Sub
Private Sub CommandButton12_Click()
Range("E30") = Val(Label2)
Range("I30") = Val(Label2)
End Sub
Private Sub CommandButton16_Click()
Range("I31") = Val(Label3)
End Sub
Private Sub CommandButton11_Click()
Range("I35") = Val(Label1)
End Sub
Private Sub CommandButton12_Click()
Range("E30") = Val(Label2)
Range("I30") = Val(Label2)
End Sub
Eli tuo Val-funktio ei käy tähän, koska sen desimaalierotin on piste ja Suomessa taas käytetään pilkkua, mutta en ole saanut millään koodilla muutettua tuota oikein, muuten tämä ohjelma kyllä toimii, mutta ne desimaaliluvut vain eivät, joita tarvitsisin ehdottomasti tässä lomakkeessa. Joten oisiko joku niin ystävällinen ja auttaisi minua tässä ongelmassa. Olisin ikionnellinen siitä, kiitos!
tv. epätoivoinen harrastelija
Vastaukset 2
Vanhimmat
Oletko kokeillut visual basicista tuttuja funkkareita, kuten CDbl(text1.text), CInt(text1.text), CCur(text1.text); en ole kyllä sata varma niiden toimivuudesta excelissä
Kiitos neuvoista "koodaaja". Jouduin melko kauan tekemään töitä, että löysin oikean kohdan mihin laitan tietotyypin (tässä tapauksessa laitoin CDbl)ja nyt se sitten toimii, mutta tein myös hirveästi töitä tämän ohjelman kanssa, että sain sen toimimaan niillä desimaaliluvuilla.
Terv. nyt:"onnellinen" harrastelija