• DİKKAT

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

Textbox Tarihe göre renklenmesi

Katılım
13 Temmuz 2016
Mesajlar
613
Excel Vers. ve Dili
Excel 2010 & 2016 Türkçe
Arkadaşlar merhabalar
Tektboxta günü tamamlananları bir türlü renklendiremedim
Sorum şu
Userform aktif olduğunda eğer Userform uzerindeki textbox1.value deki tarih üzerinden 7 - 27 geçmişse textbox1 yeşil 28- sonsuz gün ve sonrası içinde kırmızı olsun
örnek olarak
Texbox1.value= 26.04.2017 olsun değişkendir

03.05.2017 tarihinde 7 gün olduğu için TextBox1.BackColor yeşile boyansın ta 27 gün olana kadar 28 gün oldu mu veya daha sonrası "24.05.2017" ...... TextBox1.BackColor kırmızıya boyansın Saygılar
 
Aşağıdaki kodu deneyiniz:
Kod:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim fark As Long
fark = DateDiff("d", Format(CDate(TextBox1.Value), "dd/mm/yyyy"), Date)

If fark > 7 And fark <= 27 Then
    Me.TextBox1.BackColor = vbGreen
ElseIf fark > 27 Then
    Me.TextBox1.BackColor = vbRed
Else
    Me.TextBox1.BackColor = vbWhite
End If
End Sub
 
Teşekkürler
 
Son düzenleme:
Tekrar merhabalar
Bunu tek textbox'a değilde Textbox1,4,7,10,13,17,21,25 textboxların hepsine tek seferde uygulayabilmemiz mümkün mü?
 
Mümkündür.
(Kodlar, belirttiğiniz textbox ları kontrol etmek için düzenlendi.)
Öncelikle Userform1 kod sayfasına aşağıdaki kodları yapıştırın:
Kod:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Call tarihi_denetle
End Sub

Private Sub TextBox10_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Call tarihi_denetle
End Sub

Private Sub TextBox13_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Call tarihi_denetle
End Sub

Private Sub TextBox17_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Call tarihi_denetle
End Sub

Private Sub TextBox21_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Call tarihi_denetle
End Sub

Private Sub TextBox25_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Call tarihi_denetle
End Sub

Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Call tarihi_denetle
End Sub


Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Call tarihi_denetle
End Sub
Daha sonra bir modülün kod penceresine aşağıdaki kodları yapıştırınız:
Kod:
Sub tarihi_denetle()
Dim fark As Long, nesne As Object, denetle(), i As Long
    denetle = Array("TextBox1", "TextBox4", "TextBox7", "TextBox10", "TextBox13", "TextBox17", "TextBox21", "TextBox25")

    'denetlenecek olanlar: Textbox1,4,7,10,13,17,21,25
For i = 0 To 7
    Set nesne = UserForm1.Controls(denetle(i))
    If nesne.Value <> "" Then
       fark = DateDiff("d", Format(CDate(nesne.Value), "dd/mm/yyyy"), Date)
            If fark > 7 And fark <= 27 Then
                nesne.BackColor = vbGreen
            ElseIf fark > 27 Then
                nesne.BackColor = vbRed
            Else
                nesne.BackColor = vbWhite
            End If
    End If
Next i
End Sub
Örnek dosyanız ektedir.
 

Ekli dosyalar

Teşekkürler
 
Geri
Üst