• DİKKAT

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

Soru İzne Ayrılış Günü hata veriyor

Katılım
1 Ekim 2017
Mesajlar
694
Excel Vers. ve Dili
2019 türkçe
Hayırlı günler sayın hocalarım. Altta yazılan kodlarda
1.Kod İzne ayrıldığındaki tarihin kodu
2.Kod İzin bitiş kodu
Örnek olarak
23.11.2022 tarih izne başlama
21.12.2022 izin bitiş tarihi yazdığımda Bitiş ayrılıştan önce olamaz uyarısı veriyor. Yardımlarınızı bekliyorım

Private Sub TextBox10_Change()
If TextBox10 = Empty Or TextBox11 = Empty Then Exit Sub
If TextBox10 > TextBox11 Then MsgBox "Ayrılış Bitişten sonra olamaz.", vbInformation, "UYARI": TextBox10 = Empty
End Sub

Private Sub TextBox11_Change()
If TextBox10 = Empty Or TextBox11 = Empty Then Exit Sub
If TextBox10 > TextBox11 Then MsgBox "Bitiş Ayrılıştan önce olamaz.", vbInformation, "UYARI": TextBox11 = Empty
End Sub
 
TextBox10 daki kodlar fazlalık gibi geldi bana. Olmasa da olur. Tabi önce bitiş daha sonra başlangıç yazma ihtimaliniz yoksa.

Kodlama mantığında sorun yok gözüküyor. İlk veri ikinci veriden büyükse uyarı verecek şekilde yazılmış..
Hata almanızın nedeni de başlangıç ve bitiş tarihlerini yazdığınız texboxlardaki tarihlerin bir yada ikisinin tarih formatında olmaması olabilir.

Örnek dosyanızı eklemeden sorunun ne olduğu anlaşılmaz sanırım.
 
Son düzenleme:
TextBox10 daki kodlar fazlalık gibi geldi bana. Olmasa da olur. Tabi önce bitiş daha sonra başlangıç yazma ihtimaliniz yoksa.

Kodlama mantığında sorun yok gözüküyor. İlk veri ikinci veriden küçükse uyarı verecek şekilde yazılmış..
Hata almanızın nedeni de başlangıç ve bitiş tarihlerini yazdığınız texboxlardaki tarihlerin bir yada ikisinin tarih formatında olmaması olabilir.

Örnek dosyanızı eklemeden sorunun ne olduğu anlaşılmaz sanırım.
Hocam dosyayı ekliyorum
 

Ekli dosyalar

  • HH.xlsm
    HH.xlsm
    81.7 KB · Görüntüleme: 6
Formunuzdaki kod; tarih, takvimden seçilecek şekilde yazılmış.
Kodlara bakınca texboxda değişiklik yapılınca kontol işlemi yapılacak şekilde, Texbox_Change olayının içine yazılmış olduğunu farkettim.
Takvimden seçilince tek bir işlemle tarih yazıldığı için sorun olmuyor.

Eğer siz elle giriş yapıyorsanız hata vermesi normal.
Çünkü siz ilk tarih rakamını yazdığınızda kontrol kodları tetikleniyor ve karşılaştırma yapıyor. Tabi koşullara uymadığı için de hata veriyor.

Elle tarih girecekseniz. Karşılaştırma kodlarını kaydet düğmesinin kodlarının içerisine eklemelisiniz.
 
Formunuzdaki kod; tarih, takvimden seçilecek şekilde yazılmış.
Kodlara bakınca texboxda değişiklik yapılınca kontol işlemi yapılacak şekilde, Texbox_Change olayının içine yazılmış olduğunu farkettim.
Takvimden seçilince tek bir işlemle tarih yazıldığı için sorun olmuyor.

Eğer siz elle giriş yapıyorsanız hata vermesi normal.
Çünkü siz ilk tarih rakamını yazdığınızda kontrol kodları tetikleniyor ve karşılaştırma yapıyor. Tabi koşullara uymadığı için de hata veriyor.

Elle tarih girecekseniz. Karşılaştırma kodlarını kaydet düğmesinin kodlarının içerisine eklemelisiniz.
Hocam merhaba. Karşılaştırma kodlarını kaydet düğmesinin kodlarının içerisine nasıl eklenecek.
 
CommmandButton3 koduna aşağıda belirttiğim yere ekleyebilirsiniz. (If Texbox10 .... diye başlayan satır.)

Yalnız sizin kaydet butonunuzda ilk kontrol koşulu gerçekleşmediği için orda uyarı veriyor.
Formdaki ekli olan(olması gereken) 11 tane Texbox içeriğini kontrol ediyor. Biri bile boş değer döndürürse uyarı veriyor.
Ama sizin formunuzda 2 tane Texbox var. (Texbox10 ve 11)
Yeni texboxlar ekleyecekseniz onların isimlerini 1 den başlayıp 9 a kadar tanımlayın.
Artı kodda Combobox3'deki veriye göre bazı kontrol ve işlemler yapıyor. Sizdeki Combobox2 vb.

Yanlış anlamadıysam kodlama konusunda çok yenisiniz ve başka hazır bir çalışmayı kendinize uyarlamak istiyorsunuz.

Bu şekilde her hatayı sorarak ilerlemeniz çok zor olur. Sizin isteğinize göre tüm kodların yenilenmesi gerekebilir.

Bunun içinde vakit ayırabilecek bir üstad varmıdır bilemem. :)

C++:
Private Sub CommandButton3_Click()
   On Error Resume Next
    For i = 1 To 11
        If Controls("TextBox" & i) = Empty Then MsgBox "Tüm alanları doldurunuz.", vbInformation, "UYARI":  Exit Sub
    Next i
    
    If TextBox10 > TextBox11 Then MsgBox "Bitiş Ayrılıştan önce olamaz.", vbInformation, "UYARI": TextBox11 = Empty


Hocam merhaba. Karşılaştırma kodlarını kaydet düğmesinin kodlarının içerisine nasıl eklenecek.
 
Geri
Üst