Merhaba,
Bir userform üzerine yazılan bilgileri ilgili sheet üzerine satır satır kaydeden bir kod var kullandığım. Çözemediğim sorunum şu; textbox üzerinde 123,56 şeklinde yazdığım veri sheet üzerine kaydedilirken 124,00 olarak kaydediliyor. Yani istem dışı bir yukarı yuvarlama söz konusu. Kodun "kaydet" kısmında herhangi bir yuvarlama komutu yok. Bu konuda bilgi verebilecek arkadaşlar varsa çok memnun olurum.
Bilgi olması açısından kodun "kaydet" kısmı aşağıdadır;
--------------
Private Sub cmdkaydet_Click()
Dim bak As Range
Dim say As Integer
For Each bak In Range("A1:A" & WorksheetFunction.CountA(Range("A1:A65000")))
If bak.Value = cbRef.Value Then
MsgBox "Bu Kayıt numarası bulundu."
Exit Sub
End If
Next bak
For Each bak In Range("B1:B" & WorksheetFunction.CountA(Range("B1:B65000")))
If StrConv(bak.Value, vbUpperCase) = StrConv(cbRef.Value, vbUpperCase) Then
MsgBox "Bu referansta bir dosya var! Degisiklik yapmak istiyorsaniz DEGISTIR butonunu kullaniniz"
Exit Sub
End If
Next bak
say = WorksheetFunction.CountA(Range("B1:B65000"))
txtsira.Value = say
Cells(say + 1, 1).Value = txtsira.Value
Cells(say + 1, 2).Value = cbRef.Value
Cells(say + 1, 3).Value = cbBelgeTuru.Value
Cells(say + 1, 4).Value = cbBelgeTipi.Value
Cells(say + 1, 5).Value = cbOdemeDurumu.Value
Cells(say + 1, 6).Value = cbTahsilDurumu.Value
Cells(say + 1, 7).Value = txtTahsilTarihi.Value
Cells(say + 1, 8).Value = cbIlgiliFirma.Value
Cells(say + 1, 9).Value = cbGiderTuru.Value
Cells(say + 1, 10).Value = cbIlgiliProje.Value
Cells(say + 1, 11).Value = txtTarih.Value
Cells(say + 1, 12).Value = txtAciklama.Value
Cells(say + 1, 13).Value = cbDoviz.Value
Cells(say + 1, 14).Value = txtTutar.Value And Format(txtTutar.Value)
Cells(say + 1, 15).Value = txtKur.Value
Cells(say + 1, 16).Value = txtTLKarsiligi.Value
Cells(say + 1, 17).Value = txtKDV.Value
Cells(say + 1, 18).Value = txtKDVDahil.Value
Cells(say + 1, 19).Value = cbFaturaIcerigi.Value
Cells(say + 1, 20).Value = cbHizmetTuru.Value
Cells(say + 1, 21).Value = cbDonanimTuru.Value
Workbooks("dosya.XLS").Save
MsgBox "Verileriniz Kaydedildi", , "KAYIT"
cmdtemizle_Click
cbRef.RowSource = "Kayıtlar!B3:B" & say + 1
txtsira.Value = WorksheetFunction.Count(Range("A1:A65000")) + 1
End Sub
------------------
Cells(say + 1, 14).Value = txtTutar.Value And Format(txtTutar.Value)
Bu satıra Format kısmını ekledim zira aksi takdirde sheet üzerine gelen datayı excel text olarak algılıyordu.
Teşekkür ederim,
Selçuk
Bir userform üzerine yazılan bilgileri ilgili sheet üzerine satır satır kaydeden bir kod var kullandığım. Çözemediğim sorunum şu; textbox üzerinde 123,56 şeklinde yazdığım veri sheet üzerine kaydedilirken 124,00 olarak kaydediliyor. Yani istem dışı bir yukarı yuvarlama söz konusu. Kodun "kaydet" kısmında herhangi bir yuvarlama komutu yok. Bu konuda bilgi verebilecek arkadaşlar varsa çok memnun olurum.
Bilgi olması açısından kodun "kaydet" kısmı aşağıdadır;
--------------
Private Sub cmdkaydet_Click()
Dim bak As Range
Dim say As Integer
For Each bak In Range("A1:A" & WorksheetFunction.CountA(Range("A1:A65000")))
If bak.Value = cbRef.Value Then
MsgBox "Bu Kayıt numarası bulundu."
Exit Sub
End If
Next bak
For Each bak In Range("B1:B" & WorksheetFunction.CountA(Range("B1:B65000")))
If StrConv(bak.Value, vbUpperCase) = StrConv(cbRef.Value, vbUpperCase) Then
MsgBox "Bu referansta bir dosya var! Degisiklik yapmak istiyorsaniz DEGISTIR butonunu kullaniniz"
Exit Sub
End If
Next bak
say = WorksheetFunction.CountA(Range("B1:B65000"))
txtsira.Value = say
Cells(say + 1, 1).Value = txtsira.Value
Cells(say + 1, 2).Value = cbRef.Value
Cells(say + 1, 3).Value = cbBelgeTuru.Value
Cells(say + 1, 4).Value = cbBelgeTipi.Value
Cells(say + 1, 5).Value = cbOdemeDurumu.Value
Cells(say + 1, 6).Value = cbTahsilDurumu.Value
Cells(say + 1, 7).Value = txtTahsilTarihi.Value
Cells(say + 1, 8).Value = cbIlgiliFirma.Value
Cells(say + 1, 9).Value = cbGiderTuru.Value
Cells(say + 1, 10).Value = cbIlgiliProje.Value
Cells(say + 1, 11).Value = txtTarih.Value
Cells(say + 1, 12).Value = txtAciklama.Value
Cells(say + 1, 13).Value = cbDoviz.Value
Cells(say + 1, 14).Value = txtTutar.Value And Format(txtTutar.Value)
Cells(say + 1, 15).Value = txtKur.Value
Cells(say + 1, 16).Value = txtTLKarsiligi.Value
Cells(say + 1, 17).Value = txtKDV.Value
Cells(say + 1, 18).Value = txtKDVDahil.Value
Cells(say + 1, 19).Value = cbFaturaIcerigi.Value
Cells(say + 1, 20).Value = cbHizmetTuru.Value
Cells(say + 1, 21).Value = cbDonanimTuru.Value
Workbooks("dosya.XLS").Save
MsgBox "Verileriniz Kaydedildi", , "KAYIT"
cmdtemizle_Click
cbRef.RowSource = "Kayıtlar!B3:B" & say + 1
txtsira.Value = WorksheetFunction.Count(Range("A1:A65000")) + 1
End Sub
------------------
Cells(say + 1, 14).Value = txtTutar.Value And Format(txtTutar.Value)
Bu satıra Format kısmını ekledim zira aksi takdirde sheet üzerine gelen datayı excel text olarak algılıyordu.
Teşekkür ederim,
Selçuk
