Excel Userform'da Arama Sonucunda Kayıtlı Checkbox Değerleri Formda Görüntülenmiyor.

1 2 3 4
11/03/2021, 11:12

Oğuz Türkyılmaz

Berduş Hocam IIF kodu ne anlama geliyor yazdığınız kodların öncesindeki TextBoxların başına da ekleyecekmiyim.
11/03/2021, 11:20

berduş

IIF kodu eğer doğru ise bu değilse şu olsun yapısındadır
mesela kullandığımız kodda
CheckBox_AlbertGenau.Value = IIf(Worksheets("Ana_Sayfa").Cells(SatirSil, 16) = "Evet", True, False)
IIf(Worksheets("Ana_Sayfa").Cells(SatirSil, 16) = "Evet", True, False)==>
eğer hücre değeri Evet ise sonuç True olsun değilse False değerini döndürsün anlamına gelir
ama @feraz hocamın kodları da aynı anlama geliyor o kodları da kullanabilirsiniz
kod bloğunu yazdığım gibi eklemeniz yeterli bu kod sadece checkboxlara değer atamak için kullanılacak textbox yada combolarda gerek yok

checkboxların yapısı diğerlerinden farklı olduğu için böyle bir kodlamaya gerek var
ama dikkat edin sayfadan verileri alırken bu şekilde kullanılır
sayfaya veri eklenirken yada güncellerken yapı tam tersine çevrilmeli yani
Worksheets("Ana_Sayfa").Cells(SatirSil, 16) = IIf(CheckBox_AlbertGenau.Value  = true, "evet", "hayır")
şeklinde olmalı
11/03/2021, 11:29

Oğuz Türkyılmaz

(11/03/2021, 01:06)feraz yazdı: Zaman bulmuşken kodlarınızı düzenledim tekrar eden kodları tek sub içine aldım ve kısaldı.
Düzelttiklerimden biride örneğin  alttaki "" yerine False yaptım.Zaten onuda soracaktınız silmede felan neden checkboxların tiki kalkmıyor diye
CheckBox_AlbertGenau.Value = ""
CheckBox_AlbertGenau.Value = False

Feraz Hocam Çok Teşekkür ederim. Sadece aşağıdaki Fonksiyon kodlaması ters olmuş. birinci satır if değerini 1'e
2. satır if değerini 0 'a çevirdim. Sorun kalmadı.


Function Evet_Hayir(deger) As Byte
' 0 demek checkboxtaki tik olmayacak 1 se olacak demektir

If deger = "Evet" Then Evet_Hayir = 0
If deger = "Hayır" Then Evet_Hayir = 1

End Function
11/03/2021, 11:41

feraz

(11/03/2021, 11:29)Oğuz Türkyılmaz yazdı:
(11/03/2021, 01:06)feraz yazdı: Zaman bulmuşken kodlarınızı düzenledim tekrar eden kodları tek sub içine aldım ve kısaldı.
Düzelttiklerimden biride örneğin  alttaki "" yerine False yaptım.Zaten onuda soracaktınız silmede felan neden checkboxların tiki kalkmıyor diye
CheckBox_AlbertGenau.Value = ""
CheckBox_AlbertGenau.Value = False

Feraz Hocam Çok Teşekkür ederim. Sadece aşağıdaki Fonksiyon kodlaması ters olmuş. birinci satır  if değerini 1'e
2. satır if değerini 0 'a  çevirdim. Sorun kalmadı.


Function Evet_Hayir(deger) As Byte
    ' 0 demek checkboxtaki tik olmayacak 1 se olacak demektir

    If deger = "Evet" Then Evet_Hayir = 0
    If deger = "Hayır" Then Evet_Hayir = 1

End Function

Tamda ben onu yazacaktım siz eklemişsiniz abey Dosyayı güncellerim
11/03/2021, 11:45

berduş

bu Excel user formdaki checkboxları bir türlü anlayamadım bazen True için -1 değerini alıyor bazen 1 neye göre değişiyor?
ben mi yanlış biliyorum
11/03/2021, 12:01

feraz

Ben function sonundaki  as byte olarak yazmıştım ve byte 0-256 aralığı olduğu için.
Alttaki gibide kullanılır ve daha iyi olur.

Function Evet_Hayir(deger) As Boolean
    If LCase(deger) = "evet" Then Evet_Hayir = True
    If LCase(deger) = "hayýr" Then Evet_Hayir = False
End Function
1 2 3 4