• 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
Sn. Korhan hocam,

Çalışmanızı kullanmaya başladım ve bir şeyin farkına vardım. Sayfa içinde kopyalama yapılamıyor. Başka sayfadan kopyaladığımız şeyi yapıştırdığımızda seçili tüm hücrelere yapıştırıyor. ayrıca hücrenin sağ alt köşesinden tutup aşağı doğru çekemiyoruz :)
 
Selamlar,

Serkan bey seçili alan boyutları farklı olduğu için doğal olarak kopyalama yapmanıza müsaade etmiyor. Eğer bu tarz işlemleri yapacaksanız F12 tuşuna basarak bu özelliği pasif hale getirin. İstediğiniz işlemleri yaptıktan sonra F11 tuşuna basarak tekrar bu özelliği açarak kullanmaya devam edebilirsiniz.

F11 ve F12 tuşlarını bu sebeble hazırlamıştım.
 
Merhaba Korhan Ayhan Beyin göndermiş olduğu 32 nolu mesajda örnek dosyadaki çalışma çok güzel.Ben 2 .sayfadaki uygulamayı kullanmya başladım.Hem satır hem sütun renkleniyor. Birde hücredeki veriyi kopyalama yapıştırmayı yapabilse çok süper olacak. Sadece satır renklendirmede yine Korhan Ayhan beyin çalışmasında kopyalamada yapılabiliyor bunuda belirteyim. Emeği geçeh herkese teşekkürler
 
korhan hocam şaşırmaya devam ediyorum insan hayran oluyor vallahi yıllardır kendimize yaptıklarımızı düşününce inanın yazık demekten başke hiç bir şey gelmiyor dile
 
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.

2 numaralı kodu korumalı bir sayfada uygulayabilir miyim?
 
Merhaba,

Aşağıdaki şekilde kullanabilirsiniz. Kırmızı renkli bölümlere kendi şifrenizi yazınız.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Satır As Range, Sütun As Range
    
    ActiveSheet.Unprotect "[COLOR=red]12345[/COLOR]"
 
    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
    
    ActiveSheet.Protect "[COLOR=red]12345[/COLOR]"
End Sub
 
Merhaba,
Teşekkür etmeden geçemedim. Çok istediğim bir özellik oldu.

Korhan bey, eğer yayınladıysanız konunuzun linkini verebilir misiniz? Aradım ama bulamadım.

Selamlar.

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,

İşlerimin yoğunluğundan dolayı tamamlayamadım. Altyapısı hazır fakat parametrik hale getirmem gerekiyor. Bu aralar vakit ayırabileceğimi zannetmiyorum.
 
geri ve ileri tuşları çalışmıyor

Hocam hayırlı günler yapmış olduğunuz çalışma çok işimize yaradı ama bu işlemi ypatıktan sonra geri ve ileri tuşlar çalışmıyor. Bunun bir yolu varmı acaba
 
Hocam hayırlı günler yapmış olduğunuz çalışma çok işimize yaradı ama bu işlemi ypatıktan sonra geri ve ileri tuşlar çalışmıyor. Bunun bir yolu varmı acaba
 
Hocam hayırlı günler yapmış olduğunuz çalışma çok işimize yaradı ama bu işlemi ypatıktan sonra geri ve ileri tuşlar çalışmıyor. Bunun bir yolu varmı acaba


Merhaba,

Konuyu baştan sona incelerseniz soruna çözüm bulabilirsiniz?

Selamlar,

Serkan bey seçili alan boyutları farklı olduğu için doğal olarak kopyalama yapmanıza müsaade etmiyor. Eğer bu tarz işlemleri yapacaksanız F12 tuşuna basarak bu özelliği pasif hale getirin. İstediğiniz işlemleri yaptıktan sonra F11 tuşuna basarak tekrar bu özelliği açarak kullanmaya devam edebilirsiniz.

F11 ve F12 tuşlarını bu sebeble hazırlamıştım.
 
Sayın Korhan AYHAN aşağıdaki ve diğer makroları kullanmaya çalışırken Excelde Sayfayı koru hata veriyor ve makroları çalıştıramıyor. Kendimde makrolardan fazla anlamıyorum. Vaktiniz olur ise yardımlarınızın rica ediyorum. Selametle kalınız.



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
If Not Intersect(Target, [A13:AE641]) Is Nothing Then
[A13:AE641].FormatConditions.Delete
With Range(Cells(Target.Row, 1), Cells(Target.Row, 31))
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:=1
.FormatConditions(1).Interior.ColorIndex = 38
End With

With ActiveCell
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:=1
.FormatConditions(1).Font.Bold = True
.FormatConditions(1).Interior.ColorIndex = 6
End With
Else
[A13:AE641].FormatConditions.Delete
End If
End Sub
 
Sevgili Uzman Arkadaşlar,

Konu çok eski tarihli olmasına rağmen ben yeni uygulamaya başladım ve şöyle bir sorunla karşılaştım: Bulunduğum satır renkli oluyor, güzel. Ama ben ayrıca bazı hücreleri renklendirmek istediğimde bunu gerçekleştiremiyorum. Yani çalışma sayfasında makro haricinde de bazı hücrelerin renkli olarak kalması gereken durumlar var. Buna nasıl bir çözüm bulabilirsiniz, yardımınızı rica ediyorum.
Şimdiden teşekkürler,

Mustafa ÇAKI
 
Sevgili Uzman Arkadaşlar,

Konu çok eski tarihli olmasına rağmen ben yeni uygulamaya başladım ve şöyle bir sorunla karşılaştım: Bulunduğum satır renkli oluyor, güzel. Ama ben ayrıca bazı hücreleri renklendirmek istediğimde bunu gerçekleştiremiyorum. Yani çalışma sayfasında makro haricinde de bazı hücrelerin renkli olarak kalması gereken durumlar var. Buna nasıl bir çözüm bulabilirsiniz, yardımınızı rica ediyorum.
Şimdiden teşekkürler,

Mustafa ÇAKI

Merhaba bu işlemin en kolay kısmı üstüne geldiğiniz hücrenin biçimlerini X bir yere yazdırmak ve sonra başka hücre seçerken geri yüklemek.

Sayfa1 de seçilen hücrenin rengini değiştiren kod olduğunu varsayalım. Kodları işlemleri ekteki gibi işlemesi gerekir.


A1 hücresinde olan imleci B5 hücresine taşıdınız kodların yapması gereken ilk işlem B5 hücresinin formatını Sayfa2 A1 hücresinin formatını aynı yapın ve Sayfa2 A2 hücresine Sayfa2A1 deki formatın hangi hücreye ait olduğunu yazın örneğe göre B5 yazın.
Sonra Sayfa1 B5 hücresinin rengini değiştirin.


B5 hücresinden farklı bir hücre seçtiğinizde Sayfa2 A1 ve A2 hücresine kaydettiğiniz bilgilere göre terkedilen hücrenin formatını eski haline getirin ve yukarıdaki işleme başlayın.
 
Hüseyin Bey,

Bilgiler için teşekkür ederim, sakin kafayla deneyeceğim.
 
Korhan Bey,

4.Sayfada verdiğiniz kodlardan sonuncusunu kullanmak istedim,
ancak Aşağıda kod üzerinde belirttiğim sarı ve kırmızı noktalarda hata uyarısı aldım
nedeni ne olabilir acaba ?


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
 
[COLOR="Yellow"]Private Sub Worksheet_SelectionChange(ByVal Target As Range)[/COLOR]
    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 [COLOR="Red"]Kontrol[/COLOR] = 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.[/QUOTE]
 
ben bu konuda biraz daha basit bir işlem istesem acaba mümkünmü ?

mouse ile seçtiğim her hücrede shjift+space tuşlarına otomatik basılırsa çok daha basit ve güzel bir yöntem çıkar diye düşünüyorum.
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.Interior.ColorIndex = xlNone
If Intersect(Target, [A1:Q50]) Is Nothing Then Exit Sub
Range(Cells(Target.Row, 1), Cells(Target.Row, 17)).Interior.ColorIndex = 6
End Sub

bu kod çok güzel fakat ... Sayfayı Koru Dediğimde "Hata veriyor." Sayfa Korumasını Açtığım da Düzeliyor... Bunu Ayarlayabilirmiyiz acaba ???? Tabi Hücreler Kilitli olduğu için yapmıyor ama . Belki Bi çaresi vardır???

Teşekkürler Yanıtlarınız için şimdiden
 
Son düzenleme:
Geri
Üst