• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Comboboxa göre biçimlendirme

Katılım
9 Temmuz 2012
Mesajlar
106
Excel Vers. ve Dili
Excel 2007 - Türkçe
Userformdaki textboxa comboboxta seçilen değere göre nasıl biçiMlendirebilirim mesela comboboxta giriş seçildiğinde textbox +00,0 TL combobox çıkış seçildiğinde textbox -00,0 TL şeklinde olucak bunu nasıl yapabiliriz?
 
Aşağıdaki kod yapısını kullanabilirsiniz.

Kod:
Private Sub ComboBox1_Change()
    Select Case ComboBox1
        Case "GİRİŞ"
            TextBox1 = Format(CDbl(Replace(Replace(TextBox1, "-", ""), "+", "")), "+#,##0.00 TL")
        Case "ÇIKIŞ"
            TextBox1 = Format(CDbl(Replace(Replace(TextBox1, "-", ""), "+", "")), "-#,##0.00 TL")
    End Select
End Sub

Private Sub UserForm_Initialize()
    ComboBox1.AddItem "GİRİŞ"
    ComboBox1.AddItem "ÇIKIŞ"
End Sub
 
Aşağıdaki kod yapısını kullanabilirsiniz.

Kod:
Private Sub ComboBox1_Change()
    Select Case ComboBox1
        Case "GİRİŞ"
            TextBox1 = Format(CDbl(Replace(Replace(TextBox1, "-", ""), "+", "")), "+00,0 TL")
        Case "ÇIKIŞ"
            TextBox1 = Format(CDbl(Replace(Replace(TextBox1, "-", ""), "+", "")), "-00,0 TL")
    End Select
End Sub

Private Sub UserForm_Initialize()
    ComboBox1.AddItem "GİRİŞ"
    ComboBox1.AddItem "ÇIKIŞ"
End Sub

Kod:
 Case "GİRİŞ"
            TextBox1 = Format(CDbl(Replace(Replace(TextBox1, "-", ""), "+", "")), "+00,0 TL")
        Case "ÇIKIŞ"
            TextBox1 = Format(CDbl(Replace(Replace(TextBox1, "-", ""), "+", "")), "-00,0 TL")
satırlarında hata alıyorum yardımcı olur musunuz?
 
Merhaba,

Ondalıklı değerler için kodu revize ettim. Tekrar deneyiniz. Eğer yine hata alırsanız dosyanızı ekleyin inceleyelim.
 
Örnek dosyanızda B sütununu biçimlendirdim. Ve iki kayıt yaptım. Bir hata ile karşılaşmadım. Sizin sistem ondalık ve binlik ayıracınız farklı olabilir. Eğer durum böyleyse kod içindeki biçimlendirmedeki nokta ile virgülün yerlerini değiştirip deneyin.
 

Ekli dosyalar

Örnek dosyanızda B sütununu biçimlendirdim. Ve iki kayıt yaptım. Bir hata ile karşılaşmadım. Sizin sistem ondalık ve binlik ayıracınız farklı olabilir. Eğer durum böyleyse kod içindeki biçimlendirmedeki nokta ile virgülün yerlerini değiştirip deneyin.

dediğinizi yaptım , ile . ların yerlerini değiştirdim ancak hala
Kod:
            TextBox1 = Format(CDbl(Replace(Replace(TextBox1, "-", ""), "+", "")), "+#.##0,00 TL")

satırında hata alıyorum aldığım hata

Run-time error '13':
Type mismatch

sorunun ondalık biçiminde olacağını zannetmiyorum normal şartlarda diğer bütün kodlarda aynı ondalık biçimi ile hata almıyorum
 
Sanırım siz Textbox nesnesi boşken işlem yapıyorsunuz. Bundan dolayı hata mesajı çıkıyor.

Bir koşul ekleyerek bu sorunu aşabilirsiniz.

Kod:
Private Sub ComboBox1_Change()
    If TextBox1 <> "" Then
        Select Case ComboBox1
            Case "GİRİŞ"
                TextBox1 = Format(CDbl(Replace(Replace(TextBox1, "-", ""), "+", "")), "+#,##0.00 TL")
            Case "ÇIKIŞ"
                TextBox1 = Format(CDbl(Replace(Replace(TextBox1, "-", ""), "+", "")), "-#,##0.00 TL")
        End Select
    End If
End Sub
 
Sanırım siz Textbox nesnesi boşken işlem yapıyorsunuz. Bundan dolayı hata mesajı çıkıyor.

Bir koşul ekleyerek bu sorunu aşabilirsiniz.

Kod:
Private Sub ComboBox1_Change()
    If TextBox1 <> "" Then
        Select Case ComboBox1
            Case "GİRİŞ"
                TextBox1 = Format(CDbl(Replace(Replace(TextBox1, "-", ""), "+", "")), "+#,##0.00 TL")
            Case "ÇIKIŞ"
                TextBox1 = Format(CDbl(Replace(Replace(TextBox1, "-", ""), "+", "")), "-#,##0.00 TL")
        End Select
    End If
End Sub

teşekkür ederim şuan sorun halloldu sizden bir şey daha rica edicem
önce comboboxtan değeri seçip sonra textboxa değer girdiğimizde +,- işareti koymuyor bunu nasıl halledebiliriz?
 
İşlem sırasını tam tersi yapmanızda fayda var. Çünkü Textbox nesnesine veri girişinde bu işlemi yapmak zahmetli olacaktır. İsterseniz yazdıktan sonra nesneyi terk ederken biçimlendirme yapılabilir.
 
Formunuzun kod bölümüne aşağıdaki kodu ekleyip deneyin.

Kod:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    ComboBox1_Change
End Sub
 
Formunuzun kod bölümüne aşağıdaki kodu ekleyip deneyin.

Kod:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    ComboBox1_Change
End Sub

hocam sizin yaptığınız çalışmada userform ile eklediğimiz değerler hücre içerisine 1000 olarak ekliyor benim çalışmamda 1.000,00 olarak ekliyor bundan dolayı hücre biçimlendir ve Etopla formüllerinde dikkate alınmıyor yardımcı olur musunuz?
 

Ekli dosyalar

Kayıt işlemindeki satırı aşağıdaki gibi değiştirip deneyin.

Kod:
Sheets("DEPO").Range("E" & Bos_Satir).Value = [COLOR="Red"]CDbl[/COLOR](TextBox4.Text)
 
Geri
Üst