11/03/2021, 11:12
Excel Userform'da Arama Sonucunda Kayıtlı Checkbox Değerleri Formda Görüntülenmiyor.
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
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 diyeCheckBox_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 diyeCheckBox_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
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
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.
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