Textbox ondalık değer olarak artırıp azaltma

Katılım
27 Mart 2021
Mesajlar
79
Excel Vers. ve Dili
ofis 2010
Merhabalar
SpinButton yardımıyla textboxtaki değeri ondalık olarak artırıp azaltabiliyorum. Sorunum bu değeri belirli sınırlar içerisinde yapması, örnek olarak 0,5 - 0,6 - 0,7 - 1,0 - 1,1 ...... veya 2,2 - 2,1 - 2,0 - 1,7 - 1,6 ... şeklinde, yani ondalık kısmı max. " .. , 7 " olacak.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Örnek dosyanız ektedir. Ayrıca resimli olarak ta ekliyorum.
Kod:
Dim deger()

Private Sub SpinButton1_Change()
TextBox1 = Format(deger(SpinButton1.Value), "0.0")
End Sub

Private Sub UserForm_Initialize()
deger = Array(0.5, 0.6, 0.7, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 2, 2.1, 2.2)
SpinButton1.Min = 0
SpinButton1.Max = UBound(deger)
End Sub
232640 232641

Ya da alternatif olarak aşağıdaki gibi de deneyebilirsiniz.

Kod:
Private Sub SpinButton1_Change()
deger = SpinButton1.Value / 10
TextBox1 = Format(IIf(deger - Int(deger) > 0.7, deger + 0.2, deger), "0.0")
End Sub

Private Sub UserForm_Initialize()
SpinButton1.Min = 5
SpinButton1.Max = 22
End Sub
232644
 

Ekli dosyalar

Son düzenleme:

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Private Sub SpinButton1_SpinUp()
    If TextBox1.Value = "" Then TextBox1.Value = 0
        sayi = Val(Replace(TextBox1.Text, ",", "."))
        sayi = sayi + 0.1

        ondalik = Int((sayi - Int(sayi)) * 10)
        If ondalik > 6 Then
            sayi = Int(sayi) + 1
        End If
        TextBox1.Text = sayi
End Sub
Private Sub SpinButton1_SpinDown()
    If TextBox1.Value = "" Then TextBox1.Value = 0
        sayi = Val(Replace(TextBox1.Text, ",", "."))
        sayi = sayi - 0.1

        ondalik = Int((sayi - Int(sayi)) * 10)
        If ondalik = 9 Then
            sayi = sayi - 0.2
        End If
        TextBox1.Text = sayi
End Sub
 
Katılım
27 Mart 2021
Mesajlar
79
Excel Vers. ve Dili
ofis 2010
Sayın Levent bey cevabınız için çok teşekkür ederim. Bu rakamlar 0,1 den başlayacak ama sonu belki 100,1 veya daha fazla gidebilir. Nasıl bir değişiklik yapmalıyım. Bu çalışmam bir iş yerindeki kullanılan saatlik izinler veya kazanılan fazla mesailer için
 
Katılım
27 Mart 2021
Mesajlar
79
Excel Vers. ve Dili
ofis 2010
Sayın Veyselemre cevabınızı Levent beye cevap yazdıktan sonra gördüm sizin cevabınızıda deneyeceğim her ikinizede Teşekkürler
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bu rakamlar 0,1 den başlayacak ama sonu belki 100,1 veya daha fazla gidebilir. Nasıl bir değişiklik yapmalıyım. Bu çalışmam bir iş yerindeki kullanılan saatlik izinler veya kazanılan fazla mesailer için
İlk mesajımdaki 2. alternatifi deneyebilirsiniz.
 
Katılım
27 Mart 2021
Mesajlar
79
Excel Vers. ve Dili
ofis 2010
Sayın Levent bey ve Sayın Veyselemre bey cevaplarınız için ikinizede teşekkür ederim sorunum çözüldü.
 
Üst