• DİKKAT

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

Excelde çalışırken İmleç hangi hücredeyse, Hücrenin bulunduğu satır Renklensin

  • Konbuyu başlatan Konbuyu başlatan S.Yiğit
  • Başlangıç tarihi Başlangıç tarihi
syn.lemruk

imlecin bulunduğu hücrenin renklenmesi olayını ve kod'un kullanımını biraz daha açabilir misiniz ..forumları takip ediyorum.böyle bir şeyi bende istemekyetdim bazı tablolarımda ancak sizin anlatımınızdan excel acemisi olduğum için pek anlayamdım.yardımcı olursanız sevinirim.nasıl yapıldığını merak ediyorum.
 
imlecin bulunduğu hücrenin renklenmesi olayını ve kod'un kullanımını biraz daha açabilir misiniz ..forumları takip ediyorum.böyle bir şeyi bende istemekyetdim bazı tablolarımda ancak sizin anlatımınızdan excel acemisi olduğum için pek anlayamdım.yardımcı olursanız sevinirim.nasıl yapıldığını merak ediyorum.
Syn. demetis,
Bu uygulama makro kullanılarak yapıldı. Size nasıl yapıldığını anlatabilmem için az çok makro bilginizin olması gerekiyor.
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
    Cells.Interior.ColorIndex = xlNone
    If Intersect(Target, [[COLOR="Red"]A1:Q50[/COLOR]]) Is Nothing Then Exit Sub
    Range(Cells(Target.Row, [COLOR="red"]1[/COLOR]), Cells(Target.Row, [COLOR="red"]17[/COLOR])).Interior.ColorIndex = 38
    Target.Interior.ColorIndex = 6
End Sub
Sadece şu kadarını açıklayabilirim. Bu kodu kopyalayın, kodun çalışmasını istediğiniz sayfa sekmesinin üzerine gelerek sağ tıklayın. En altta Kod görüntüleyi seçin. Çıkan boş ekrana bu kodu yapıştırın. Kırmızı ile belirttiğim kısmı kendi tablonuza göre değiştirin. Bu kodda 1 ve 17 renklendirilecek satırın sınırlarını belirtiyor. Siz hangi aralığın renklenmesini istiyorsanız bu sayıları ona göre değiştirin.
 
teşekkür

teşekkür ederim.anlatımınız gayet açıklayıcı olmuş.kendi tablolarıma uyguladım.iyi çalışmalar
 
syn.leumruk

evde ki bilgisayarım da dediğiniz şekilde yapabildim.ancak ofis bilgisayarımda excel 2007 yüklü bu uygulamayı onda yapamadım.makroları etkinleştime gibi ayarlarını yaptım.güvenlik merkezinden.ancak ilk kayıt eetiğimde imleç istediğim gibi ancak dosyayı kapatıp açtığımda uygulama çalışmıyor.eksik ne yapıyorum acaba ?
 
evde ki bilgisayarım da dediğiniz şekilde yapabildim.ancak ofis bilgisayarımda excel 2007 yüklü bu uygulamayı onda yapamadım.makroları etkinleştime gibi ayarlarını yaptım.güvenlik merkezinden.ancak ilk kayıt eetiğimde imleç istediğim gibi ancak dosyayı kapatıp açtığımda uygulama çalışmıyor.eksik ne yapıyorum acaba ?
Merhaba, 2007'nin farklı bir özelliği var. Belirttiğiniz gibi her açışta makroyu aktifleştirmek gerekiyor. Mutlaka makroyu sürekli etkinleştirmenin bir yolu vardır; ama ben bilmiyorum. Şu an deneme imkanım da yok. 2007 kullanan arkadaşlar bu konuda size yardımcı olabilirler. Ben ancak pazartesi deneyebilirim. Evde 2007 yok.
 
Çok güzel ve yalın bir anlatım olmuş elinize sağlık
ancak benim bu konuda bi sıkıntım var
bu kodun uygulandığı sayfada daha önceden renklendirilmiş hücrelerin renkleri kayboluyor.
ve üstelik makroyu silince de geri gelmiyor.
 
Satırı renklendıremıyorum

merhaba, imlecin bulunduğu hucreyi ada satırı reklnedirme kodu için cok teşekkürler, copyalama için ek satır yazmıssınız, renklendirme içinde yazabılırmısınız, satırı yda hücreyi renlendiremiyorum,

birde kodu eklendı olarak kaydedemedım bir türlü kaydettımde calışmıyor, neden olabılır ?



Kod:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
Cells.Interior.ColorIndex = xlNone
If Intersect(Target, [A1:AZ100]) Is Nothing Then Exit Sub
Range(Cells(Target.Row, 1), Cells(Target.Row, 23)).Interior.ColorIndex = 15
Target.Interior.ColorIndex = 36

End Sub
 
Merhaba,
Aiağıdaki örneği inceleyiniz.
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
If Not Intersect(Target, [A1:M20]) Is Nothing Then
[A1:M20].FormatConditions.Delete
    With Range(Cells(Target.Row, 1), Cells(Target.Row, 13))
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Interior.ColorIndex = 6
    End With
Else
[A1:M20].FormatConditions.Delete
End If
End Sub
 

Ekli dosyalar

Merhaba,

Çalışma çok başarılı, tebrik ederim ve teşekürlerimi sunarım.

Yalnız benim aynı sayfada bulunan userform1 um,bu programla birlikte çalışmıyor!
Yardımlarınızı rica ederim.
*Örnek dosya ektedir.

Saygılar,

***Düzeltme:Arkadaşlar problemi hallettim.Yanlışlıkla diğer kodun üzerine yapıştırmışım kodu :S
 
Son düzenleme:
Merhaba,
Aiağıdaki örneği inceleyiniz.
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
If Not Intersect(Target, [A1:M20]) Is Nothing Then
[A1:M20].FormatConditions.Delete
    With Range(Cells(Target.Row, 1), Cells(Target.Row, 13))
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Interior.ColorIndex = 6
    End With
Else
[A1:M20].FormatConditions.Delete
End If
End Sub

Sn. Mustafa bey,

Elinize sağlık, Ben farklı bir çalışma için bu çalışmanızı kullanmak istedim fakat koşullu biçimlendirme yapılamıyor. Bununda bir çözümü var mıdır? :)
 
Selamlar,

Serkan bey bu konuyla ilgili forumda bir çok başlık bulunuyor.

Bu konuyla ilgili aşağıdaki kodlamalar kullanılmaktadır.

1. numaralı kod;

Kod:
Option Explicit
 
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
    Cells.Interior.ColorIndex = xlNone
    ActiveCell.EntireColumn.Interior.ColorIndex = 8 'Sütun Rengi
    ActiveCell.EntireRow.Interior.ColorIndex = 8 ' Satır Rengi
    ActiveCell.Cells.Interior.ColorIndex = 6 ' Hücre Rengi
End Sub

1 numaralı kodda sayfadaki tüm renkler silinip seçili satır ve sütun yeniden renkleniyor. Tabiki sayfa üzerinde durması gereken renklerde silindiği için kod işlevselliğini otomatikman yitiriyor. Bu kodu kullanmak isteyen arkadaşlarımızın bu işlev dışında sayfada başka renk kullanmamaları gerekiyor.

Bu durumda genelde aşağıdaki kod kullanılıyor.

2. numaralı kod;

Kod:
Option Explicit
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Satır As Range, Sütun As Range
 
    Set Satır = Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 256))
    Set Sütun = Range(Cells(1, ActiveCell.Column), Cells(65536, ActiveCell.Column))
 
    Cells.FormatConditions.Delete
 
    With Satır
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Font.Bold = True
        .FormatConditions(1).Interior.ColorIndex = 8
    End With
 
    With Sütun
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Font.Bold = True
        .FormatConditions(1).Interior.ColorIndex = 8
    End With
 
    With ActiveCell
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Font.Bold = True
        .FormatConditions(1).Interior.ColorIndex = 6
    End With
End Sub

2 numaralı kodda ise sayfadaki tüm koşullu biçimlendirmeler silinip seçili satır ve sütuna koşullu biçimlendirme yöntemiyle yeniden renk veriliyor. Tabiki sayfa üzerinde durması gereken eski koşullu biçimlendirmelerde silindiği için kod işlevselliğini otomatikman yitiriyor. Bu kodu kullanmak isteyen arkadaşlarımızın sayfada başka koşullu biçimlendirme işlemi yapmamaları gerekiyor.


Ben size renk kullanmadan eski renkleri bozmadan, koşullu biçimlendirmeleri silmeden kullanabileceğiniz bir yöntemi kullanmanızı öneriyorum.

Aşağıdaki kodu deneyiniz.

Renk kullanmadan sadece sayfada satır ve sütunu seçerek belirgin hale getiriyor. Bu şekilde gerial komutunuda rahatlıkla kullanabiliyorsunuz. Tek eksisi renkli olmayışı ve seçim anında kopyalamaya müsade etmeyişidir. Kopyalama yapmak istediğinizde F12 tuşuna basıp seçimi pasif hale getirebiliyorsunuz. Tekrar seçimi aktifleştirmek için F11 tuşuna basmanız yeterlidir. Artılarının yanıda bu küçük ayrıntınında çok önemli olmadığını düşünüyorum.

Boş bir modüle;

Kod:
Option Explicit
Public Kontrol As Boolean
 
Sub Renklendirme_Aktif()
    Application.EnableEvents = True
    Kontrol = True
End Sub
 
Sub Renklendirme_Pasif()
    Application.EnableEvents = True
    Kontrol = False
End Sub
 
Sub Aşağıya_Git()
    On Error Resume Next
    ActiveCell.Offset(1).Select
End Sub
 
Sub Sağa_Git()
    On Error Resume Next
    ActiveCell.Offset(0, 1).Select
End Sub


ThisWorkbook bölümüne;

Kod:
Option Explicit
 
Private Sub Workbook_Activate()
    Application.OnKey "{TAB}", "Sağa_Git"
    Application.OnKey "{Enter}", "Aşağıya_Git"
    Application.OnKey "~", "Aşağıya_Git"
    Application.OnKey "{F11}", "Renklendirme_Aktif"
    Application.OnKey "{F12}", "Renklendirme_Pasif"
End Sub
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.OnKey "{TAB}"
    Application.OnKey "{Enter}"
    Application.OnKey "~"
    Application.OnKey "{F11}", ""
    Application.OnKey "{F12}", ""
End Sub
 
Private Sub Workbook_Deactivate()
    Application.OnKey "{TAB}"
    Application.OnKey "{Enter}"
    Application.OnKey "~"
    Application.OnKey "{F11}", ""
    Application.OnKey "{F12}", ""
End Sub
 
Private Sub Workbook_Open()
    Kontrol = True
    Application.OnKey "{TAB}", "Sağa_Git"
    Application.OnKey "{Enter}", "Aşağıya_Git"
    Application.OnKey "~", "Aşağıya_Git"
    Application.OnKey "{F11}", "Renklendirme_Aktif"
    Application.OnKey "{F12}", "Renklendirme_Pasif"
End Sub


Bu işlemi uygulamak istediğiniz sayfanın kod bölümüne;

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If ActiveCell.Column = 256 Then Exit Sub
    If ActiveCell.Column > Target.Column Then Exit Sub
    If Application.MoveAfterReturnDirection = xlToRight Then
        Target.Next.Select
    Else
        Target.Offset(1, 0).Select
    End If
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Sütun As String, Satır As Long, Adres As String
    
    On Error GoTo Son
    
    If Target.Cells.Count > 1 Then Exit Sub
    
    If Kontrol = True Then
        With Application
            .ScreenUpdating = False
            .EnableEvents = False
                Sütun = Split(Selection.Address(1, 0), "$")(0)
                Adres = Sütun & ":" & Sütun
                Satır = Split(Selection.Address(1, 0), "$")(1)
                Adres = Adres & "," & Satır & ":" & Satır & "," & Selection.Address
                Range(Adres).Select
                Target.Activate
            .EnableEvents = True
            .ScreenUpdating = True
        End With
    End If
 
Son: Application.EnableEvents = True
End Sub

Ekteki örnek dosyada tüm kodların uyarlanmış halini bulabilirsiniz.
 

Ekli dosyalar

Sn. Korhan bey merhaba,

Elinize sağlık çok güzel bir anlatım yapmışsınız. 3 numaralı kod benim için ideal tek sıkıntı, bir veri girdiğimizde ilgili sütunun en baş hücresine gidiyor. Örnek C10 hücresine bişey yazıp enter dediğimizde imleç C1 hücresine gidiyor. Bununda çözümü varsa süper olur. Yardım ve ilginiz için teşekkürler
 
Selamlar,

Evet Serkan bey haklısınız. Veri girişi yaptığınızda imleç olması gereken yere konumlanmıyor. Tabiki bu sorunuda koda küçük bir ekleme yaparak hallettim. Üstteki mesajdan dosyayı indirebilirsiniz.

Kontrollerinizi yaparak karşılaştığınız hataları bildirirseniz bu hataları düzelterek kodu daha işlevsel hale getirebiliriz.
 
Hocam madem hataları bildirin dediniz bende bildireyim. :) Gerçi hata değil eksiklikleri giderelim diyelim.

Örnek C12 hücresine veri girip enter diyelim sonra bir enter daha dediğimizde en baştaki hücreye gidiyor(C1)

İkinci örnek ise C12 hücresine veriyi girip entera basmadan tab tuşuyla sağdaki hücreye geçmek istediğimizde alt hücreye(C13) geçiyor bir daha tab yapıncada en baş hücreye geçiyor(C1)
 
Selamlar,

Serkan bey son belirttiğiniz problemleride düzelterek üstteki mesajımdaki kodları ve dosyayı revize ettim. İncelermisiniz.

Sayfada ok tuşları ile çoklu hücre seçimi yapmak isterseniz F12 tuşuna basarak bu özelliği pasif yapıp işlemlerinize devam edebilirsiniz. Tekrar bu özelliği aktif etmek isterseniz F11 tuşuna basmanız yeterlidir.
 
Sn. Hocam,

Elinize sağlık çok güzel oldu.

3 nolu kod için soruyorum, Sayfa 2 ve sayfa 3'deki kodları sildiğim zaman kodları kullanabilirim değil mi? Sayfa 1'deki kod, thisworkbook ve modüldeki kodlar olduğu gibi kalacak ?
 
Selamlar,

Evet Serkan bey Sayfa2 ve Sayfa3 teki kodları sildiğinizde kodları kullanabilirsiniz. 3 sayfada birbirinden bağımsız çalışmaktadır.

Bu konuyla ilgili farklı bilgilere ulaştım. Bu bilgileri derleyip tamamladığımda ayrı bir başlık açarak yayınlayamayı düşünüyorum.
 
Merhaba,
Aiağıdaki örneği inceleyiniz.
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
If Not Intersect(Target, [A1:M20]) Is Nothing Then
[A1:M20].FormatConditions.Delete
    With Range(Cells(Target.Row, 1), Cells(Target.Row, 13))
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Interior.ColorIndex = 6
    End With
Else
[A1:M20].FormatConditions.Delete
End If
End Sub

Bu kodu kullandım ve çok beğendim hiçbir problemde çıkarmadı.
Ellerinize sağlık.
 
Sn. Hocam bu huyunuzu seviyorum yani bir şeye kafanızı taktınız mı mutlaka sonuca ulaşıyorsunuz. Çalışmanızı dört gözle bekliyorum.. Kolaylıklar dilerim..
 
Geri
Üst