• DİKKAT

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

DTpicker'da İstenmeyen Tarihlerin Seçilememesini Sağlamak

Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Selam,

Bir Userform üzerindeki DTpicker'a bir aralıktan tarih verileri alıyorum.
Aralığın ilk satırını DTpicker.MinDate , son satırını ise DTpicker.MaxDate yaptım.

DTpicker'i açtığımda minDate öncesi ve MaxDate sonrası tarihlere gidilmiyor ve tıklanmıyor. İsteğimin biri bu idi. Bunun gerçekleştirebildim.
Ancak aralık içinde olmayan tarihlere de tıklanmamasını istiyorum.

Bunu nasıl yapabilirim?

Örnek dosyam ektedir. ilk tarih A2 Hücresinde 06.10.2010, son tarih A12 hücresinde 21.10.2010'dur

Aralıkta olmayan ve tıklanamasını, seçilememesini istediğim tarihler;

10.10.2010
11.10.2010
12.10.2010
17.10.2010
18.10.2010' dir yardımcı olabilirseniz Sevinirim.
İyi çalışmalar.
 

Ekli dosyalar

Merhaba,

Örnek olması açısından DTPicker1'in Change olayında aşağıdaki kodları dener misiniz?

Kod:
Private Sub DTPicker1_Change()
Dim c As Range
Set c = Sheets("veri-1").Range("a2:a12").Find(DTPicker1.Value, LookIn:=xlFormulas)
If c Is Nothing Then
MsgBox "Aralıkta olmayan tarih seçtiniz"
DTPicker1.SetFocus
End If
End Sub
 
Merhaba,

Örnek olması açısından DTPicker1'in Change olayında aşağıdaki kodları dener misiniz?

Kod:
Private Sub DTPicker1_Change()
Dim c As Range
Set c = Sheets("veri-1").Range("a2:a12").Find(DTPicker1.Value, LookIn:=xlFormulas)
If c Is Nothing Then
MsgBox "Aralıkta olmayan tarih seçtiniz"
DTPicker1.SetFocus
End If
End Sub
Selam Sayın Necdet Yeşertener hocam,
Çok teşekkür ederim ellerinize sağlık. Müsaadenizle bir iki ufak şeyler sorabilir miyim?
1- Aralıkta olmayan tarih seçince mesaj ile uyarı geliyor. Fakat DTpicker içinde o tarih görünüyor. Bunu engelleyebilir miyiz? Yani aralıkta olmayan tarihi seçmeden önceki değer görünse.
2-
Kod:
DTPicker1.SetFocus
görevi nedir? İptal ettim değişen birşey olmadı.

İyi çalışmalar.
 
Merhaba,

DTPicker da belli tarihleri yok saymanın olacağını sanmıyorum, zaten kendisi min ve mak. tarihlere izin vermiş ama aradan bir ya da birden fazla tarihin kullanılmayacağına ilişkin bir kısıtlamayı ben görmedim.

SetFocus belli bir nesneye yönlendirmek için kullanılır benim yaptığım örnekte pek gerekli değildi.

Kodları aşağıdaki şekilde değiştirdim umarım yanlış girilen tarihten sonra bir önceki tarihi korumaya çalıştım.

Kod:
Public EskiTarih As Date

Kod:
Private Sub DTPicker1_Change()
    Dim c As Range
    Set c = Sheets("veri-1").Range("a2:a12").Find(DTPicker1.Value, LookIn:=xlFormulas)
    If c Is Nothing Then
        MsgBox "Aralıkta olmayan tarih seçtiniz"
        DTPicker1.Value = EskiTarih
    Else
        EskiTarih = DTPicker1.Value
    End If
End Sub
Private
Kod:
Sub UserForm_Initialize()
Dim veri As Worksheet
Set veri = Sheets("veri-1")
son = veri.Cells(65536, "A").End(3).Row
DTPicker1.MinDate = veri.Range("A2")
DTPicker1.MaxDate = veri.Range("A" & son)
[B][COLOR=red]EskiTarih = DTPicker1.Value[/COLOR][/B]
End Sub
 
Merhaba,

DTPicker da belli tarihleri yok saymanın olacağını sanmıyorum, zaten kendisi min ve mak. tarihlere izin vermiş ama aradan bir ya da birden fazla tarihin kullanılmayacağına ilişkin bir kısıtlamayı ben görmedim.

SetFocus belli bir nesneye yönlendirmek için kullanılır benim yaptığım örnekte pek gerekli değildi.

Kodları aşağıdaki şekilde değiştirdim umarım yanlış girilen tarihten sonra bir önceki tarihi korumaya çalıştım.
QUOTE]

Sayın Necdet Yeşertener hocam,
Tam İstediğim gibi, Süper oldu ellerinize sağlık.
İyi çalışmalar.
 
Geri
Üst