TextBox Exit Olayında Enabled = False kullandığım zaman 2 kere hesaplıyor

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
608
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Arkadaşlar merhaba textbox1'e Sayfa1 Den veri alıyorum textbox2'ye girdiğim veriyi textbox2'den Çıktıktan sonra textbox1'den düşüyor. Buraya kadar herşey normal ama ikinci kez mause ile üzerine gelip çıktığım zaman veri tekrar düşüyor bende bunu engellemek için TextBox2.Enabled = False kodunu ekledim fakat bu sefer şöyle bir sorun oluştu. Diyelim textbox1'de 100 yazıyor ben textbox2'ye 10 girip çıktığımda textbox1'deki rakkam 80 oluyor. Aşağıdaki kodda yanlış olan neresi bir türlü çözemedim

Kod:
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox2 = "" Then Exit Sub
TextBox1 = TextBox1 - TextBox2
TextBox2.Enabled = False
End Sub
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Kod:
Dim OncekiDeger As Variant
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox2.Text <> OncekiDeger Then
        OncekiDeger = TextBox2.Text
        If TextBox2 = "" Then Exit Sub
        TextBox1 = TextBox1 - TextBox2
    End If
End Sub
 

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
608
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Say&#305;n alpi yard&#305;m&#305;n&#305;z i&#231;in te&#351;ekk&#252;r ederim ama textboxtan &#231;&#305;kt&#305;ntan sonra enabled &#246;zelli&#287;ini false yapmam&#305;z m&#252;mk&#252;nm&#252; bunu nas&#305;l ayarlaya biliriz.
 

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
Aşağıdaki gibi deneyin.

Kod:
Dim a

Private Sub TextBox2_Enter()
If a = 1 Then TextBox2.Enabled = False
End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox2 = "" Then Exit Sub
TextBox1 = TextBox1 - TextBox2
a = 1
End Sub
 

Tasarım

Altın Üye
Katılım
3 Şubat 2005
Mesajlar
277
Excel Vers. ve Dili
Microsoft Excel 2013 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
16-11-2025
Kodları bu şekilde değiştirirseniz sanırım istediğiniz olur.

Kod:
Dim OncekiDeger As Variant
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox2.Text <> OncekiDeger Then
        OncekiDeger = TextBox2.Text
        If TextBox2 = "" Then Exit Sub
        TextBox1 = TextBox1 - TextBox2
        TextBox2.Enabled = False
    End If
End Sub
 

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
608
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Arkadaşlar öncelikle yardımlarınız için sağolun. Ama nasıl denediysem olmadı ekteki örnegi gönderiyorum. TextBoxtan çıktıktan sonra yazdırğım değeri 2 kere düşüyor ve 2 ci textbox a geçmeden başa dönüyor. Sayın leventm'in verdiği kodları denedim onlarda aynı şelilde oluyor. Nerde bir hatam var anlayamadım
 

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
608
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Arkada&#351;lar ben bi t&#252;rl&#252; beceremedim say&#305;n alpi ve leventm in verdi&#287;i &#351;ekilde denedim ama olmuyor nerde eksik yap&#305;yorum bulamad&#305;m. Yard&#305;mc&#305; olabilirmisiniz.
 

programer

Altın Üye
Katılım
26 Mayıs 2005
Mesajlar
608
Excel Vers. ve Dili
Office 2022 - Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Arkada&#351;lar hepinize yard&#305;mlar&#305;n&#305;z i&#231;in te&#351;ekk&#252;r ederim. Sorunumu &#199;&#246;zd&#252;m in&#351;allah ileride bir sorun &#231;&#305;kmaz. Say&#305;n alpi ve leventm'in kodlar&#305;n&#305; birle&#351;tirerek &#231;&#246;zd&#252;m iki usta bir araya gelirde &#231;&#246;z&#252;m olmazm&#305; dimi. Kodlar a&#351;a&#287;&#305;da.

Kod:
Private Sub GN1_Enter()
If a = 1 Then GN1.Enabled = False
End Sub
Private Sub GN1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If GN1 = "" Then Exit Sub
KA1 = KA1.Value - GN1.Value
a = 1
End Sub
Private Sub GC1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If GC1.Text <> OncekiDeger Then
OncekiDeger = GC1.Text
If GC1 = "" Then Exit Sub
KA1 = KA1 - GC1
End If
End Sub
Private Sub MN2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
GC1.Enabled = False
End Sub
 
Üst