• DİKKAT

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

User Form - TextBox Tarih Aralığı

Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Merhaba arkadaşlar. User Form'da TextBox1 için girilecek verinin (tarih) aralık vermek gerekse, örneğin 01.01.2011 ile 31.12.2012 tarihleri arasında olması için kod ne olmalıdır ?
 
Son düzenleme:
Sayın paranırmal çok teşekkürler. Şu şekilde nasıl olabilir ?

TextBox1.value=Format(">=01.01.2012", "dd-mm-yyyy")
TextBox1.value=Format("<=31.12.2012", "dd-mm-yyyy")

veya bu şekilde ?
TextBox1.Value = Format(">=" & "01.01.2012" And "<=" & "31.12.2012", "dd-mm-yyyy")
 
yani gerekli olan şu :

TextBox1'e yazılacak tarih 01.01.2012 ile 31.12.2012 arasında olmalı.
 
Simdi denedim benim UserFormda fakat ortaya çikan sonuç tam olarak sizin yazdiginizin üsteki olani için, tam olarak, >=01,01,2012 olarak gösteriyor. Anladigim kadari ile 01.01.2012 ile 31.12.2012 Tarihler arasi bisey mi? Tarih göstermesini istiyorsaniz bir tarih kodu yazmaniz lazim.
 
Sayın paranormal biraz daha detaylı açıklayayım nasıl bir koda gereksinim olduğunu :
Textbox1'e bit tarih girilecek. Ancak kullanıcının girdiği tarihin 01.01.2012 den büyük, 31.12.2012 den küçük herhangi bir tarih olmasını sağlamaya çalışıyorum. Örneğin 30.11.2011 girildiğinde kabul etmesin, 05.02.2013 girildiğinde kabul etmesin.
 
Son düzenleme:
Ne demek istedigini anladim.....Bunun gibi mi? umarim yardimci olur...Kolay gelsin

Sub FindDate()
Dim RowCount1 As Integer, RowCount2 As Integer, rCell As Range, lReply As Long
Dim BulDate As Date, FindDate1 As Date, FindDate2 As Date

Application.ScreenUpdating = False

RowCount1 = 5
RowCount2 = 5
Sheets("Sonuç").Select
Do
If Cells(RowCount2, 2) = Empty Then Exit Do
RowCount2 = RowCount2 + 1
Loop Until RowCount = 49

Sheets("Liste").Select
BulDate = Application.InputBox(Prompt:="Bir Tarih girin", _
Title:="TARIH BUL", Default:=Format(Date, "dd/mm/yyyy"), Type:=1)
If BulDate = False Then Exit Sub

On Error Resume Next

Range("C5").Select
Do
FindDate1 = ActiveCell.Value
FindDate2 = ActiveCell.Offset(0, 2).Value
If BulDate >= FindDate1 And BulDate <= FindDate2 Then
RowCount1 = ActiveCell.Row
Range("B" & RowCount1 & ":F" & RowCount1).Copy
Sheets("Sonuç").Select
Range("B" & RowCount2 & ":F" & RowCount2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
RowCount2 = RowCount2 + 1
Sheets("Lilste").Select
Application.CutCopyMode = False
Range("C" & RowCount1).Select
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell = Empty

On Error GoTo 0
Sheets("Sonuç").Select
Application.ScreenUpdating = True
End Sub
 
Size de zahmet verdim, kusuruma bakmayın. Bu kodu uyarlamam benim seviyem için çok zor. Benzer bir kod vardı, onu kodu bulup mesaj olareak yazayım. O kodun revizyonu çok işe yarar.
 
Private Sub CommandButton1_Click()

If CDate(TextBox2.Value) < DateSerial(Year(Date) - 2, Month(Date), Day(Date)) Or _
CDate(TextBox2.Value) > DateSerial(Year(Date) + 2, Month(Date), Day(Date)) Then
TextBox2.SetFocus
MsgBox "2 YIL ÖNCESİNDEN KÜÇÜK, YA DA 2 YOL SONRASINDAN BÜYÜK TARİH YAZAMAZSINIZ"
Exit Sub
Else
Range("a1000").End(xlUp).Offset(1, 0) = CDate(TextBox2.Value)
End If

End Sub

Kod:
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox2.Value = Format(TextBox2.Value, "dd.mm.yyyy")
End Sub
 
Bu kod Sayın Necdet Yeşertener'den alıntıdır. Bu kod tarihte 2 yıl öncesi ve sonrası şeklinde bir denetim yapıyor. Bana gereken ise tam belirli 2 tarih arasında denetim yapması.
 
Merhaba arkadaşlar. User Form'da TextBox1 için girilecek veri kabulü için (tarih) aralık vermek gerekse, örneğin 01.01.2011 ile 31.12.2012 tarihleri arasında bir tarih olması için kod ne olmalıdır ?
 
Kod:
Private Sub TextBox1_Change()
ilk = "01.01.2011"
son = "31.12.2012"

If TextBox1.Value = "" Then
MsgBox " Lütfen tarih giriniz..", , ""
End If

If TextBox1.Value < ilk And TextBox1.Value > son Then
MsgBox " Girilen tarih 01.01.2011 ile 31.12.2012 tarihleri arasında bir değer olmalıdır. ", , ""
Exit Sub
End If
End Sub
 
Sayın Cihangir Can, ilginize çok teşekkür ederim. Aslında çok güzel bir kod. Kısa ve uygun. Ancak istenen sonucu vermedi nedense !!
 
Deneyiniz.:cool:
Kod:
Private Sub TextBox1_Change()
dim ilk as date,son as date
ilk = "01.01.2011"
son = "31.12.2012"

If TextBox1.Value = "" Then
MsgBox " Lütfen tarih giriniz..", , ""
End If

If  cdate(TextBox1.Value) >= ilk And  cdate(TextBox1.Value) <= son Then
MsgBox " Girilen tarih 01.01.2011 ile 31.12.2012 tarihleri arasında bir değer olmalıdır. ", , ""
Exit Sub
End If
End Sub
 
Sayın Orion1 çok teşekkür ederim. Beceriksizliğimi mazur görün. Kodu ekteki dosyaya ekledim ancak işlev gerçekleşmedi. Bir şeyi yanlış/eksik yapıyorum herhalde.
 

Ekli dosyalar

Dosyanız ektedir.:cool:
Kod:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Value = Format(TextBox1.Value, "dd.mm.yyyy")
Dim ilk As Date, son As Date
ilk = DateValue("01.01.2011")
son = DateValue("31.12.2012")

If TextBox1.Value = "" Then
MsgBox " Lütfen tarih giriniz..", , ""
End If

If CDate(TextBox1.Value) < ilk Or CDate(TextBox1.Value) > son Then
MsgBox " Girilen tarih 01.01.2011 ile 31.12.2012 tarihleri arasında bir değer olmalıdır. ", , ""
Cancel = True
Exit Sub
End If
End Sub
 

Ekli dosyalar

Sayın Orion1 büyüksünüz vesselam. Çok teşekkür ederim. Sağlıcakla kalın.
 
sayın serdarokan dün dönüş yapamadim kusura bakmayin, vaktim olmadi girmeye.. sayin orion hocam zaten problemi çözmüş.. saygılarımı sunarim.. iyi çalışmalar..
 
Sayın Cihangir Can, Allah hepinizden razı olsun, işiniz gücünüz rast gitsin. Zaten zaman ayırıp bizlere yardımcı oluyorsunuz, kusur ne demek. İlgilenmeniz bile bizim için şereftir. Sağlıcakla kalın.
 
Geri
Üst