Komut Butonuyla Aç Kapa

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
546
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Selamlar

Örnek dosyada tarihleri renklendiren kodlar vardır.

Komut butonunu bir basışta çalıştıracak, diğer basışta iptal edecek hale getirebilir miyiz acaba, teşekkürler.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Deneyiniz.
Kod:
Private Sub CommandButton1_Click()
    Dim sf As Worksheet
    Dim Son As Long
    Dim Tarih(9)
    Dim Bak As Integer
    Static Renklendir As Boolean
    
    Renklendir = Not Renklendir
    Set sf = Sheets("RAPOR")
    Son = sf.Cells(Rows.Count, "A").End(3).Row
    
    For Bak = 0 To 9
        Tarih(Bak) = Date + Bak
    Next
    
    Application.ScreenUpdating = False
    sf.Range("A2:C" & Son).Interior.Color = xlNone
    If Renklendir Then Exit Sub
    sf.Range("A1:C" & Son).AutoFilter Field:=2, Operator:=xlFilterValues, Criteria1:=Tarih
    sf.Range("A2:C" & Son).SpecialCells(xlCellTypeVisible).Interior.Color = vbYellow
    sf.Range("A1:C" & Son).AutoFilter
    Application.ScreenUpdating = True
    
End Sub
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,
Sizin koda küçük bir ek yaptım.
Sayfaya bir ToggleButton (Değiştirme Düğmesi) ekleyip, butonun kod bölümüne aşağıdaki kodu yapıştırarak dener misiniz?
Kod:
Private Sub ToggleButton1_Click()
Dim sf As Worksheet: Set sf = Sheets("RAPOR")
Dim tarih1 As Date, tarih2 As Date, taranan As Date
    tarih1 = Format(Date, "dd.mm.yyyy")
    tarih2 = Format(Date + 10, "dd.mm.yyyy")
    son = sf.Cells(Rows.Count, "A").End(3).Row
  
If ToggleButton1.Value = True Then
    sf.Range("A2:C" & son).Interior.Color = xlNone
  
    For i = 2 To son
        taranan = Format(sf.Cells(i, "B").Value, "dd.mm.yyyy")
        If taranan = tarih1 Or taranan > tarih1 Then
        If taranan = tarih2 Or taranan < tarih2 Then
            sf.Range(sf.Cells(i, "A"), sf.Cells(i, "C")).Interior.Color = vbYellow
        End If
        End If
    Next i
Else
    sf.Range("A2:C" & son).Interior.Color = xlNone
End If
End Sub
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
546
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Merhaba,
Sizin koda küçük bir ek yaptım.
Sayfaya bir ToggleButton (Değiştirme Düğmesi) ekleyip, butonun kod bölümüne aşağıdaki kodu yapıştırarak dener misiniz?
Kod:
Private Sub ToggleButton1_Click()
Dim sf As Worksheet: Set sf = Sheets("RAPOR")
Dim tarih1 As Date, tarih2 As Date, taranan As Date
    tarih1 = Format(Date, "dd.mm.yyyy")
    tarih2 = Format(Date + 10, "dd.mm.yyyy")
    son = sf.Cells(Rows.Count, "A").End(3).Row
 
If ToggleButton1.Value = True Then
    sf.Range("A2:C" & son).Interior.Color = xlNone
 
    For i = 2 To son
        taranan = Format(sf.Cells(i, "B").Value, "dd.mm.yyyy")
        If taranan = tarih1 Or taranan > tarih1 Then
        If taranan = tarih2 Or taranan < tarih2 Then
            sf.Range(sf.Cells(i, "A"), sf.Cells(i, "C")).Interior.Color = vbYellow
        End If
        End If
    Next i
Else
    sf.Range("A2:C" & son).Interior.Color = xlNone
End If
End Sub
Dede hocam emeğinize sağlık, çok güzel olmuş. Müsait vaktinizde biir tane de komut butonuyla yapabilirseniz, denemek isterim
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
546
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Merhaba.

Deneyiniz.
Kod:
Private Sub CommandButton1_Click()
    Dim sf As Worksheet
    Dim Son As Long
    Dim Tarih(9)
    Dim Bak As Integer
    Static Renklendir As Boolean
   
    Renklendir = Not Renklendir
    Set sf = Sheets("RAPOR")
    Son = sf.Cells(Rows.Count, "A").End(3).Row
   
    For Bak = 0 To 9
        Tarih(Bak) = Date + Bak
    Next
   
    Application.ScreenUpdating = False
    sf.Range("A2:C" & Son).Interior.Color = xlNone
    If Renklendir Then Exit Sub
    sf.Range("A1:C" & Son).AutoFilter Field:=2, Operator:=xlFilterValues, Criteria1:=Tarih
    sf.Range("A2:C" & Son).SpecialCells(xlCellTypeVisible).Interior.Color = vbYellow
    sf.Range("A1:C" & Son).AutoFilter
    Application.ScreenUpdating = True
   
End Sub
Muzaffer Ali hocam emeğinize sağlık, çok güzel olmuş. Sadece 10 günü renklendirmesi gerekiyordu. Koddaki iki adet 9’u 10 yaptım düzeldi. Sanıyorum doğru yaptım.
Teşekkürler.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Rica ederim. Kolay gelsin.
 
Üst