• DİKKAT

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

Aktif hücre aralıkta

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,454
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Arkadaşlar, sayın hocalarım, şöyle bir kodum var. Size çok basit gelecek biliyorum ama
Aktif yani seçili hücre sarı olacak. Bunu A2:H10 arasında sadece sarı olsun sınırlandırma nasıl yapabilirim.
Teşekkür ederim.
Saygılarımla.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static oncekihucre As Range, zeminRengi As Long
    If Not oncekihucre Is Nothing Then
        oncekihucre.Interior.ColorIndex = zeminRengi
    End If
    zeminRengi = Target.Interior.ColorIndex
    Target.Interior.ColorIndex = 6
    Set oncekihucre = Target
    
End Sub
 
Deneyiniz,

C++:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Me.Range("A2:H10").Interior.ColorIndex = xlNone
    If Not Intersect(Target, Me.Range("A2:H10")) Is Nothing Then
        Target.Interior.Color = vbYellow
    End If
End Sub
 
Deneyiniz,

C++:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Me.Range("A2:H10").Interior.ColorIndex = xlNone
    If Not Intersect(Target, Me.Range("A2:H10")) Is Nothing Then
        Target.Interior.Color = vbYellow
    End If
End Sub

Çok teşekkür ederim hocam. Emeğinize sağlık.
 
Merhaba
Alternatif Kodlar

Rich (BB code):
Private Sub Worksheet_SelectionChange(ByVal IIıı0o0Iıı0IoııoOıI0ııIOI00IıI As Range)
Dim IOıI00Iıı0oOII0ııI0Ioıı00IoIoI As Long, ıI0Ioı00Iıı0OII0ııIoıI0IıOII0ı As Long: Dim ı0OIıI0IoIıOII0ıı0I0ııIoıI0Iı0 As Long, I0ııOIoıI0Iı0ı0I0ııIı0OIıI0IoI As Long
Dim Iı0ı0I0ııI0ıı0OIıI0IoıOIoıI0II As Range: Set Iı0ı0I0ııI0ıı0OIıI0IoıOIoıI0II = Me.Cells: Iı0ı0I0ııI0ıı0OIıI0IoıOIoıI0II.Interior.ColorIndex = xlNone
IOıI00Iıı0oOII0ııI0Ioıı00IoIoI = 2: ıI0Ioı00Iıı0OII0ııIoıI0IıOII0ı = 10: ı0OIıI0IoIıOII0ıı0I0ııIoıI0Iı0 = 1: I0ııOIoıI0Iı0ı0I0ııIı0OIıI0IoI = 8
If Not Intersect(IIıı0o0Iıı0IoııoOıI0ııIOI00IıI, Me.Range(Me.Cells(IOıI00Iıı0oOII0ııI0Ioıı00IoIoI, ı0OIıI0IoIıOII0ıı0I0ııIoıI0Iı0), Me.Cells(ıI0Ioı00Iıı0OII0ııIoıI0IıOII0ı, I0ııOIoıI0Iı0ı0I0ııIı0OIıI0IoI))) Is Nothing Then IIıı0o0Iıı0IoııoOıI0ııIOI00IıI.Interior.ColorIndex = 6
End Sub

Can Sıkıntısı :P
 
Konuda dosya yok, bide bu kodlar aktif hücrenin dolgu rengi içindi. Karışmış olabilir mi?
Hocam "PUZZLE" konu başlığı.
(Kendi açtığım konunun linkini koymak forum kurallarına aykırı değildir umarım, öyleyse özür dilerim, hemen silerim)
 
Merhaba
Alternatif Kodlar

Rich (BB code):
Private Sub Worksheet_SelectionChange(ByVal IIıı0o0Iıı0IoııoOıI0ııIOI00IıI As Range)
Dim IOıI00Iıı0oOII0ııI0Ioıı00IoIoI As Long, ıI0Ioı00Iıı0OII0ııIoıI0IıOII0ı As Long: Dim ı0OIıI0IoIıOII0ıı0I0ııIoıI0Iı0 As Long, I0ııOIoıI0Iı0ı0I0ııIı0OIıI0IoI As Long
Dim Iı0ı0I0ııI0ıı0OIıI0IoıOIoıI0II As Range: Set Iı0ı0I0ııI0ıı0OIıI0IoıOIoıI0II = Me.Cells: Iı0ı0I0ııI0ıı0OIıI0IoıOIoıI0II.Interior.ColorIndex = xlNone
IOıI00Iıı0oOII0ııI0Ioıı00IoIoI = 2: ıI0Ioı00Iıı0OII0ııIoıI0IıOII0ı = 10: ı0OIıI0IoIıOII0ıı0I0ııIoıI0Iı0 = 1: I0ııOIoıI0Iı0ı0I0ııIı0OIıI0IoI = 8
If Not Intersect(IIıı0o0Iıı0IoııoOıI0ııIOI00IıI, Me.Range(Me.Cells(IOıI00Iıı0oOII0ııI0Ioıı00IoIoI, ı0OIıI0IoIıOII0ıı0I0ııIoıI0Iı0), Me.Cells(ıI0Ioı00Iıı0OII0ııIoıI0IıOII0ı, I0ııOIoıI0Iı0ı0I0ııIı0OIıI0IoI))) Is Nothing Then IIıı0o0Iıı0IoııoOıI0ııIOI00IıI.Interior.ColorIndex = 6
End Sub

Can Sıkıntısı :p

Biolightant hocam merhaba.

Yazdığınız kodda I'lar O'lar gibi uzun karakterler, harflerin kodları gibi bir şey sanıyorum. Daha önce hiç rastlamamıştım.

İnternete harflerin kodları listesi yazdım çıkmadı. Tam olarak neyin nesi bunlar :) ve Google'a ne yazarsam bulabilirim?
 
Biolightant hocam merhaba.

Yazdığınız kodda I'lar O'lar gibi uzun karakterler, harflerin kodları gibi bir şey sanıyorum. Daha önce hiç rastlamamıştım.

İnternete harflerin kodları listesi yazdım çıkmadı. Tam olarak neyin nesi bunlar :) ve Google'a ne yazarsam bulabilirim?

Dim IOıI00Iıı0oOII0ııI0Ioıı00IoIoI As Long yerine => Dim hakki83 As long
Dim ıI0Ioı00Iıı0OII0ııIoıI0IıOII0ı As Long yerine => Dim RBozkurt As long gibi
:D Büyük I küçük ı,l ve sıfır vb. ne yazarsanız o.
 
Dim IOıI00Iıı0oOII0ııI0Ioıı00IoIoI As Long yerine => Dim hakki83 As long
Dim ıI0Ioı00Iıı0OII0ııIoıI0IıOII0ı As Long yerine => Dim RBozkurt As long gibi
:D Büyük I küçük ı,l ve sıfır vb. ne yazarsanız o.
RBozkurt hocam gerçi tahmin etmiştim, hatta o karakterleri Replace ile değiştirip denemeler yapmıştım ve olmuştu.

Fakat şunu anlayamadım:
A2:H10 alanı hiç görünmüyor ama çalışıyor ve kodların neresinde duruyor A2:H10 :)
 
1.A ve 8.H sütunu. Aşağıda tek satır yapınca anlaşılıyor.

C++:
Private Sub Worksheet_SelectionChange(ByVal IIıı0o0Iıı0IoııoOıI0ııIOI00IıI As Range)

    Dim IOıI00Iıı0oOII0ııI0Ioıı00IoIoI As Long
    Dim ıI0Ioı00Iıı0OII0ııIoıI0IıOII0ı As Long
    Dim ı0OIıI0IoIıOII0ıı0I0ııIoıI0Iı0 As Long
    Dim I0ııOIoıI0Iı0ı0I0ııIı0OIıI0IoI As Long
    
    Dim Iı0ı0I0ııI0ıı0OIıI0IoıOIoıI0II As Range
    
    Set Iı0ı0I0ııI0ıı0OIıI0IoıOIoıI0II = Me.Cells
    Iı0ı0I0ııI0ıı0OIıI0IoıOIoıI0II.Interior.ColorIndex = xlNone
    
    IOıI00Iıı0oOII0ııI0Ioıı00IoIoI = 2
    ıI0Ioı00Iıı0OII0ııIoıI0IıOII0ı = 10
    ı0OIıI0IoIıOII0ıı0I0ııIoıI0Iı0 = 1
    I0ııOIoıI0Iı0ı0I0ııIı0OIıI0IoI = 8
    
    If Not Intersect(IIıı0o0Iıı0IoııoOıI0ııIOI00IıI, Me.Range(Me.Cells(IOıI00Iıı0oOII0ııI0Ioıı00IoIoI, ı0OIıI0IoIıOII0ıı0I0ııIoıI0Iı0), Me.Cells(ıI0Ioı00Iıı0OII0ııIoıI0IıOII0ı, I0ııOIoıI0Iı0ı0I0ııIı0OIıI0IoI))) Is Nothing Then
        IIıı0o0Iıı0IoııoOıI0ııIOI00IıI.Interior.ColorIndex = 6
    End If
    
End Sub
 
Merhaba çözmüşsünüz :D

Kod yazarken ne kadar anlaşılır ın tam tersi mantıkla,

Ne kadar çok Değişken o kadar iyi
Bir ve Sıfır a en yakın görünüş ( I harfi ve O harfi veya 0 sıfır ) ( en güzeli sanki O harfi ile 1 rakamı )
birbirine çok benzer Değişken ismi
ve ne kadar az paragraf o kadar iyi up uzun satır

Kodların başında alternatif demiştim
hem değişken sayısını artırmak amacıyla A2:H10 bende yok
bende 1. sütun ve 8. sütün ile 2. Satır ve 10. Satır var :D
esasında bu rakamları gereksiz saçma sapan matematiksel işlemlerle uzatılabilirdi

C++:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' Aralık sınırları
    Dim startRow As Long, endRow As Long
    Dim startCol As Long, endCol As Long

    ' Önceki seçimden kalan hücrelerin rengini sıfırla
    Me.Cells.Interior.ColorIndex = xlNone

    startRow = 2 ' Başlangıç satırı
    endRow = 10  ' Bitiş satırı
    startCol = 1 ' Başlangıç sütunu (A sütunu)
    endCol = 8   ' Bitiş sütunu (H sütunu)

    ' Seçilen hücre belirtilen aralıkta mı?
    If Not Intersect(Target, Me.Range(Me.Cells(startRow, startCol), Me.Cells(endRow, endCol))) Is Nothing Then
        Target.Interior.ColorIndex = 6
    End If
End Sub

Kolay gelsin.
 
Geri
Üst