murex4951
Altın Üye
- Katılım
- 12 Haziran 2006
- Mesajlar
- 72
- Excel Vers. ve Dili
- Microsoft 365 Türkçe 64bit
windows 11
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Private Sub Worksheet_Change(ByVal Target As Range)
Dim AramaDegeri As Variant
Dim Hucre As Range
Dim SonSatir As Long
Dim SonSutun As Long
Dim AramaAlani As Range
' Ekran güncellemelerini kapatarak hız kazanalım
Application.ScreenUpdating = False
Application.EnableEvents = False ' Sonsuz döngüyü önlemek için olayları geçici olarak kapat
' A1 hücresi değiştiyse tüm tablonun rengini sıfırlayıp baştan boyayalım
If Not Intersect(Target, Range("A1")) Is Nothing Then
Cells.Interior.ColorIndex = xlNone
End If
' A1 boşsa işlem yapma
AramaDegeri = Range("A1").Value
If IsEmpty(AramaDegeri) Or AramaDegeri = "" Then
Application.EnableEvents = True
Application.ScreenUpdating = True
Exit Sub
End If
' Sayfadaki son dolu satır ve son dolu sütunu net olarak tespit et
On Error Resume Next
SonSatir = Cells.Find(What:="*", After:=Cells(1, 1), LookAt:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
SonSutun = Cells.Find(What:="*", After:=Cells(1, 1), LookAt:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
On Error GoTo 0
' Eğer sayfada veri varsa arama alanını belirle
If SonSatir > 0 And SonSutun > 0 Then
Set AramaAlani = Range(Cells(1, 1), Cells(SonSatir, SonSutun))
' Belirlenen tüm alan içinde döngü kurarak eşleşenleri sarı yap (A1 hariç)
For Each Hucre In AramaAlani
If Hucre.Address <> "$A$1" And Not IsError(Hucre.Value) Then
If CStr(Hucre.Value) = CStr(AramaDegeri) Then
Hucre.Interior.Color = RGB(255, 255, 0) ' Sarı renk
Else
' Eğer değer uymuyorsa ve daha önce sarı boyandıysa eski rengini temizle
If Hucre.Interior.Color = RGB(255, 255, 0) Then
Hucre.Interior.ColorIndex = xlNone
End If
End If
End If
Next Hucre
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub