Excelde Userform Üzerinden Sayfaya Veri Kaydederken Tarih Ve Sayı Değeri Sorunsalı :)

1 2 3 4
11/02/2021, 23:41

Oğuz Türkyılmaz

(11/02/2021, 23:05)feraz yazdı: Wert yerine mesela
Textbox1.value yazılacak abey.

Textbox1.value =FORMAT(textbox1.value, "#,##0.00") 
Yukardaki gibi örnek olabilir.

Feraz Hocam Kodu yanlış yazmadıysam eğer metinsel değer olarak aktarıyor.


Kod:
If txt_MasrafTarihi <> "" And txt_BelgeNo <> "" And cmb_Firma <> "" And cmb_MasrafTuru <> "" And txt_MasrafTutari <> "" Then

    If IsNumeric(txt_MasrafTutari.Value) Then
        SonSatir = WorksheetFunction.CountA(Worksheets("Ana Sayfa").Range("A:A")) + 1
        
        txt_MasrafTutari.Value = Format(txt_MasrafTutari.Value, "#,##0.00")

        If SonSatir = 2 Then
            Worksheets("Ana Sayfa").Cells(SonSatir, 1) = 1
            Worksheets("Ana Sayfa").Cells(SonSatir, 2) = txt_MasrafTarihi
            Worksheets("Ana Sayfa").Cells(SonSatir, 3) = cmb_Firma
            Worksheets("Ana Sayfa").Cells(SonSatir, 4) = txt_BelgeNo
            Worksheets("Ana Sayfa").Cells(SonSatir, 5) = cmb_MasrafTuru
            Worksheets("Ana Sayfa").Cells(SonSatir, 6) = txt_Aciklama
            Worksheets("Ana Sayfa").Cells(SonSatir, 7) = txt_MasrafTutari
        
        Else
            Worksheets("Ana Sayfa").Cells(SonSatir, 1) = Worksheets("Ana Sayfa").Cells(SonSatir - 1, 1) + 1
            Worksheets("Ana Sayfa").Cells(SonSatir, 2) = txt_MasrafTarihi
            Worksheets("Ana Sayfa").Cells(SonSatir, 3) = cmb_Firma
            Worksheets("Ana Sayfa").Cells(SonSatir, 4) = txt_BelgeNo
            Worksheets("Ana Sayfa").Cells(SonSatir, 5) = cmb_MasrafTuru
            Worksheets("Ana Sayfa").Cells(SonSatir, 6) = txt_Aciklama
            Worksheets("Ana Sayfa").Cells(SonSatir, 7) = txt_MasrafTutari
        End If
11/02/2021, 23:42

feraz

Konuyu tam bilmiyorum lakin format için bakmıştım.Pc açıp bir inceleyeyim.

Hücreye format uygulamak için yanılmıyorsam numberformat olarak yapılmalı.Son dosyayı ekler misiniz?
11/02/2021, 23:55

feraz

Private Sub btn_KayýtEkle_Click()

If txt_MasrafTarihi <> "" And txt_BelgeNo <> "" And cmb_Firma <> "" And cmb_MasrafTuru <> "" And txt_MasrafTutari <> "" Then

If IsNumeric(txt_MasrafTutari.Value) Then
SonSatir = WorksheetFunction.CountA(Worksheets("Ana Sayfa").Range("A:A")) + 1

If SonSatir = 2 Then
Worksheets("Ana Sayfa").Cells(SonSatir, 1) = 1
Worksheets("Ana Sayfa").Cells(SonSatir, 2) = txt_MasrafTarihi
Worksheets("Ana Sayfa").Cells(SonSatir, 3) = cmb_Firma
Worksheets("Ana Sayfa").Cells(SonSatir, 4) = txt_BelgeNo
Worksheets("Ana Sayfa").Cells(SonSatir, 5) = cmb_MasrafTuru
Worksheets("Ana Sayfa").Cells(SonSatir, 6) = txt_Aciklama
Worksheets("Ana Sayfa").Cells(SonSatir, 7).Value = txt_MasrafTutari.Value + 0
Worksheets("Ana Sayfa").Cells(SonSatir, 7).NumberFormat = "#,##0.00"

Else
Worksheets("Ana Sayfa").Cells(SonSatir, 1) = Worksheets("Ana Sayfa").Cells(SonSatir - 1, 1) + 1
Worksheets("Ana Sayfa").Cells(SonSatir, 2) = txt_MasrafTarihi
Worksheets("Ana Sayfa").Cells(SonSatir, 3) = cmb_Firma
Worksheets("Ana Sayfa").Cells(SonSatir, 4) = txt_BelgeNo
Worksheets("Ana Sayfa").Cells(SonSatir, 5) = cmb_MasrafTuru
Worksheets("Ana Sayfa").Cells(SonSatir, 6) = txt_Aciklama
Worksheets("Ana Sayfa").Cells(SonSatir, 7).Value = txt_MasrafTutari.Value + 0
Worksheets("Ana Sayfa").Cells(SonSatir, 7).NumberFormat = "#,##0.00"
End If

Else
MsgBox " Masraf Tutarý Hanesine Sadece Rakam Girilebilir "
GoTo SoN:
End If

Else
MsgBox " Dikkat...! Tanýmlý Alanlar Boþ Geçilemez "

End If
SoN:

txt_MasrafTarihi = ""
txt_BelgeNo = ""
cmb_Firma = ""
cmb_MasrafTuru = ""
txt_Aciklama = ""
txt_MasrafTutari = ""

End Sub

Yani alttaki gibi çözüldü.           
Kod:
Worksheets("Ana Sayfa").Cells(SonSatir, 7).Value = txt_MasrafTutari.Value + 0
Worksheets("Ana Sayfa").Cells(SonSatir, 7).NumberFormat = "#,##0.00"
12/02/2021, 00:03

berduş

@Oğuz Türkyılmaz bey az önce denedim size yazdığım kodu sorunsuz çalıştı
exceldeki g sütunu belirttiğiniz gibi gösterdi
siz kodu nereye eklediniz

https://resim.accesstr.net/do.php?img=10710
12/02/2021, 00:03

feraz

Yada G sütununu sayı olarak formatlayın binlik olarak ve alttaki gibide olur.

Kod:
Worksheets("Ana Sayfa").Cells(SonSatir, 7).Value = CDbl(txt_MasrafTutari.Value + 0)
Yukardaki kod ile yapıldı.

Private Sub btn_KayýtEkle_Click()

If txt_MasrafTarihi <> "" And txt_BelgeNo <> "" And cmb_Firma <> "" And cmb_MasrafTuru <> "" And txt_MasrafTutari <> "" Then

If IsNumeric(txt_MasrafTutari.Value) Then
SonSatir = WorksheetFunction.CountA(Worksheets("Ana Sayfa").Range("A:A")) + 1

If SonSatir = 2 Then
Worksheets("Ana Sayfa").Cells(SonSatir, 1) = 1
Worksheets("Ana Sayfa").Cells(SonSatir, 2) = txt_MasrafTarihi
Worksheets("Ana Sayfa").Cells(SonSatir, 3) = cmb_Firma
Worksheets("Ana Sayfa").Cells(SonSatir, 4) = txt_BelgeNo
Worksheets("Ana Sayfa").Cells(SonSatir, 5) = cmb_MasrafTuru
Worksheets("Ana Sayfa").Cells(SonSatir, 6) = txt_Aciklama
Worksheets("Ana Sayfa").Cells(SonSatir, 7).Value = CDbl(txt_MasrafTutari.Value + 0)

Else
Worksheets("Ana Sayfa").Cells(SonSatir, 1) = Worksheets("Ana Sayfa").Cells(SonSatir - 1, 1) + 1
Worksheets("Ana Sayfa").Cells(SonSatir, 2) = txt_MasrafTarihi
Worksheets("Ana Sayfa").Cells(SonSatir, 3) = cmb_Firma
Worksheets("Ana Sayfa").Cells(SonSatir, 4) = txt_BelgeNo
Worksheets("Ana Sayfa").Cells(SonSatir, 5) = cmb_MasrafTuru
Worksheets("Ana Sayfa").Cells(SonSatir, 6) = txt_Aciklama
Worksheets("Ana Sayfa").Cells(SonSatir, 7).Value = CDbl(txt_MasrafTutari.Value + 0)
End If

Else
MsgBox " Masraf Tutarý Hanesine Sadece Rakam Girilebilir "
GoTo SoN:
End If

Else
MsgBox " Dikkat...! Tanýmlý Alanlar Boþ Geçilemez "

End If
SoN:

txt_MasrafTarihi = ""
txt_BelgeNo = ""
cmb_Firma = ""
cmb_MasrafTuru = ""
txt_Aciklama = ""
txt_MasrafTutari = ""

End Sub
12/02/2021, 00:13

Oğuz Türkyılmaz

(12/02/2021, 00:03)berduş yazdı: @Oğuz Türkyılmaz bey az önce denedim size yazdığım kodu sorunsuz çalıştı
exceldeki g sütunu belirttiğiniz gibi gösterdi
siz kodu nereye eklediniz

https://resim.accesstr.net/do.php?img=10710
Kod:
If SonSatir = 2 Then


Sn.Berduş Hocam rica etsem sizde çalışan dosyayı buraya yüklermisiniz. O dosya benim bilgisayarımda nasıl çalışacak. Benim bilgisayarın binlik ve ondalık ayırıcı ayarları farklı acaba ordan kaynaklanabilirmi diye merak ediyorum.

            Worksheets("Ana Sayfa").Cells(SonSatir, 1) = 1
            Worksheets("Ana Sayfa").Cells(SonSatir, 2) = txt_MasrafTarihi
            Worksheets("Ana Sayfa").Cells(SonSatir, 3) = cmb_Firma
            Worksheets("Ana Sayfa").Cells(SonSatir, 4) = txt_BelgeNo
            Worksheets("Ana Sayfa").Cells(SonSatir, 5) = cmb_MasrafTuru
            Worksheets("Ana Sayfa").Cells(SonSatir, 6) = txt_Aciklama
            Worksheets("Ana Sayfa").Cells(SonSatir, 7) = CDbl(txt_MasrafTutari.Value)
        
        Else
            Worksheets("Ana Sayfa").Cells(SonSatir, 1) = Worksheets("Ana Sayfa").Cells(SonSatir - 1, 1) + 1
            Worksheets("Ana Sayfa").Cells(SonSatir, 2) = txt_MasrafTarihi
            Worksheets("Ana Sayfa").Cells(SonSatir, 3) = cmb_Firma
            Worksheets("Ana Sayfa").Cells(SonSatir, 4) = txt_BelgeNo
            Worksheets("Ana Sayfa").Cells(SonSatir, 5) = cmb_MasrafTuru
            Worksheets("Ana Sayfa").Cells(SonSatir, 6) = txt_Aciklama
            Worksheets("Ana Sayfa").Cells(SonSatir, 7) = CDbl(txt_MasrafTutari.Value)
        End If
1 2 3 4