• DİKKAT

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

Application Calculate hk.

Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Arkadaşlar seçili hücrenin bulunuğu satırı renklendirmek için aşağıdaki gibi bir kod kullanıyorum
Sayfa içersine;
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = False Then
    Application.Calculate
End If
End Sub

Koşullu biçimlendirme;
Kod:
=YADA(HÜCRE("row")=SATIR())

Ben bu kodlamayı çoğu sayfada kullanıyorum ve sayfa içine yazılan koddaki Application.Calculate ifadesi sayfanın yavaşlamasına sebep oluyor. Bu kodlamaya alternatif olarak başka bir kod var mıdır acaba ?
 
Linkte farklı uygulamalar mevcut. İnceleyip kendi dosyanıza uyarlayınız.


Not: Benim önerdiğim kodlar koşullu biçimlendirme uygulamasıdır. Ama Calculation işlemine gerek duymaz.
 
Hocam sayfaların 2 si hariç diğer hepsinde sadece yukarıda bahsettiğim koşullandırma var. O iki sayfada da birden fazla koşullandırma var.

Örn.

218860
 
Ben mesajımı editlemiştim. Siz o arada sanırım mesajınızı yazdınız.

Önceki mesajımda verdiğim linki inceleyiniz.
 
Deneyiniz.

Kod:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim X_1 As Long, X_2 As Long, Y_1 As Integer, Y_2 As Integer, Satir As Range, Sutun As Range
   
    If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
   
    X_1 = ActiveWindow.VisibleRange.Row
    X_2 = Range(Split(ActiveWindow.VisibleRange.Address, ":")(1)).Row
    Y_1 = ActiveWindow.VisibleRange.Column
    Y_2 = Range(Split(ActiveWindow.VisibleRange.Address, ":")(1)).Column

    Set Satir = Range(Cells(ActiveCell.Row, Y_1), Cells(ActiveCell.Row, Y_2))
    Set Sutun = Range(Cells(X_1, ActiveCell.Column), Cells(X_2, ActiveCell.Column))
   
    Cells.FormatConditions.Delete
   
    With Satir
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Font.Bold = True
        .FormatConditions(1).Interior.ColorIndex = 37
    End With
   
    With Sutun
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Font.Bold = True
        .FormatConditions(1).Interior.ColorIndex = 37
    End With
   
    With ActiveCell
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Font.Bold = True
        .FormatConditions(1).Interior.ColorIndex = 40
    End With
End Sub

Hocam verdiğiniz linki inceledim şu kod çok işime yaradı ancak ekranda görünen satır ve sütunlar değilde belli bir alandaki satır ve sütunların renklenmesi için kodda nasıl bir değişiklik yapmam gerekiyor ? Örn. A1:Q18 aralığı.
 
Deneyiniz.

C++:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Satir As Range, Sutun As Range
   
    Cells.FormatConditions.Delete
    
    If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
    If Intersect(Target, Range("A1:Q18")) Is Nothing Then Exit Sub
   
    Set Satir = Cells(ActiveCell.Row, 1).Resize(1, ActiveCell.Column)
    Set Sutun = Cells(1, ActiveCell.Column).Resize(ActiveCell.Row, 1)
   
    With Satir
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Font.Bold = True
        .FormatConditions(1).Interior.ColorIndex = 37
    End With
   
    With Sutun
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Font.Bold = True
        .FormatConditions(1).Interior.ColorIndex = 37
    End With
   
    With ActiveCell
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Font.Bold = True
        .FormatConditions(1).Interior.ColorIndex = 40
    End With
End Sub
 
Hocam bu şekilde sonuç verdi. İlgile alanda geri kalan satır ve sütunda renklendirme olmadı.


218892
 
Bu şekilde deneyiniz.

C++:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Satir As Range, Sutun As Range
   
    Cells.FormatConditions.Delete
    
    If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
    If Intersect(Target, Range("A1:Q18")) Is Nothing Then Exit Sub
   
    Set Satir = Cells(ActiveCell.Row, 1).Resize(1, 17)
    Set Sutun = Cells(1, ActiveCell.Column).Resize(18, 1)
   
    With Satir
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Font.Bold = True
        .FormatConditions(1).Interior.ColorIndex = 37
    End With
   
    With Sutun
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Font.Bold = True
        .FormatConditions(1).Interior.ColorIndex = 37
    End With
   
    With ActiveCell
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:=1
        .FormatConditions(1).Font.Bold = True
        .FormatConditions(1).Interior.ColorIndex = 40
    End With
End Sub
 
Hocam kodu örnek dosyada denediğim için önce fark edememiştim şimdi asıl dosyamda denedim ilgili aralıktaki diğer koşullu biçimlendirmeleri siliyormuş :/
 
Eğer ilgili aralıktaki koşullu biçimlendirmelerinizin sayısı sabitse, yani değişmeyecekse çözüm üretilebilir.
 
Hocam dosyamın aslı bu. Detaylar, Araçlar, Raporlar, Personel sayfalarında koşullu biçimlendirmeler var.
 

Ekli dosyalar

  • A.xlsm
    A.xlsm
    634 KB · Görüntüleme: 6
Hangi sayfada bu işlem olacak?
 
6 sayfada olacak hocam. Detaylar, Araçlar, Arızalar, Yakıt, Raporlar ve Personel sayfaları.
 
Ben verdiğiniz koda göre Arızalar ve Yakıt sayfasını yapabiliyorum ama diğer 4 sayfada kullandığım başka koşullu biçimlendirme olduğu için kod onları siliyor.
 
Dosyanızı yedekleyerek ekteki dosyadaki kodları kendi dosyanıza uyarlayıp deneyiniz.

Modül1 de ve sayfanın arka planında kodlar var. İkisini de kendi dosyanıza uyarlamanız gerekiyor.
 

Ekli dosyalar

Hocam çok uğraştırdım sizi hakkınızı helal edin elinize emeğinize sağlık.
 
Geri
Üst