• DİKKAT

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

Çalışma kitabının yavaşlaması

Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Arkadaşlar aşağıda paylaştığım excel dosyasını uzun zamandır sorunsuz bir şekilde kullanıyordum 2 tane resim ekledim aşırı derecede yavaşlama oldu. Eklediğim resimleri geri silince yavaşlama sorunu ortadan kalktı. Dosyanın sağ üst tarafında göreceksiniz bildirim ve kilit ikonları ekledim ve bu resimlere makro atadım. Aşırı derecede yavaşlama meydana geldi sorunu çözemedim yardımınıza ihtiyacım var.
 

Ekli dosyalar

Kilit ikonuna atadğım makronun kodu

Kod:
Option Explicit

Dim Kontrol As Boolean

Sub kilitle()
    Dim Buton
    
    If Kontrol = True Then
     Sheets("Veri").Range("D106").Value = "Kilitli"
        ActiveSheet.Protect "12345"
        Kontrol = False
        Set Buton = ActiveSheet.Shapes(Application.Caller)

    Else
         
        ActiveSheet.Unprotect "12345"
        Kontrol = True
        Set Buton = ActiveSheet.Shapes(Application.Caller)
    Sheets("Veri").Range("D106").Value = "Açık"
    End If
End Sub
 
Set Buton = ActiveSheet.Shapes(Application.Caller)

Bu satırların amacı nedir?
 
Dosyanızda hiç makro yok. Yağ bakımları sayfasında hücre seçimine bağlı kod var. Bu kod da kopyalama pasifse hesaplama yapıyor. Buna neden ihtiyaç duydunuz? Excelin normal hesaplama şekli sizin işinizi görmüyor mu?
 
Hocam dosyamın orijinalini paylaşıyorum. Sorunu da en başından ve daha detaylı anlatayım. Her sayfanın sağ üst köşesine 2 tane küçük resim (ikon) ekledim. Bu resimlerin biri bildirim resmi diğeri kilit resmi. İki resimde bir ad tamlamasına bağlı.
Yağ bakımları sayfasının BC3 hücresine bir formül yazdım. Bu formüle göre bildirim var ise eklediğim resim kırmızı oluyor. Bildirim yok ise resim mavi oluyor.

Kilit resmine ise bir makro atadım. Bir kere tıklandığında sayfayı korumaya alıyor ve resmin rengi siyah oluyor, ikince kez tıklandığında sayfanın korumasını kaldırıyor resmin rengi mavi oluyor.

Resimlerin renk değiştirme olayı Veri sayfasının G102 hücresine yaptığım 2 tane ( bildirimler ve sayfakoruma ) ad tamlamalarına bağlı. Sorun da tam olarak burada. Ad yöneticisinden bildirimler ve sayfakoruma ad tamlamalarını silince dosyanın yavaşlama sorunu ortadan kalıyor.

Görselliğe önem verdiğim için bu sorunu çözebilirsek çok iyi olacak. Yoksa mecburen ad tamlamalarını silip bu sevdadan vazgeçmek zorunda kalacağım.
Not: Dosyadaki yavaşlama en çok Raporlar sayfasının I5 ve O5 hücrelerinde bulunan ileri geri butonlarına basılınca hissediliyor.
 

Ekli dosyalar

  • Yeni.zip
    Yeni.zip
    864 bayt · Görüntüleme: 21
Dosyayı yükleyememişsiniz.
 
Şahsen o resmi göstermeyi nasıl yaptığınızı bile anlayamadım maalesef. Çözümü merakla bekliyorum.
 
şu kodları dener misiniz? sayfakoruma isimli ad yöneticisindeki kaydır, kaçıncı işlevleri yerine direk adres gösterir.
Kod:
If ActiveSheet.ProtectContents Then
    ActiveSheet.Unprotect "12345"
    Debug.Print ThisWorkbook.Names.Item("sayfakoruma").RefersTo
    ThisWorkbook.Names.Item("sayfakoruma").RefersTo = Sheets("Veri").Range("G104")
  

Else
    ActiveSheet.Protect "12345"
    Debug.Print ThisWorkbook.Names.Item("sayfakoruma").RefersTo
    ThisWorkbook.Names.Item("sayfakoruma").RefersTo = Sheets("Veri").Range("G105")
  
End If
 
şu kodları dener misiniz? sayfakoruma isimli ad yöneticisindeki kaydır, kaçıncı işlevleri yerine direk adres gösterir.
Kod:
If ActiveSheet.ProtectContents Then
    ActiveSheet.Unprotect "12345"
    Debug.Print ThisWorkbook.Names.Item("sayfakoruma").RefersTo
    ThisWorkbook.Names.Item("sayfakoruma").RefersTo = Sheets("Veri").Range("G104")
 

Else
    ActiveSheet.Protect "12345"
    Debug.Print ThisWorkbook.Names.Item("sayfakoruma").RefersTo
    ThisWorkbook.Names.Item("sayfakoruma").RefersTo = Sheets("Veri").Range("G105")
 
End If
Hocam çok teşekkür ederim ilgilendiğiniz için kodu denedim ama maalesef excel dosyası yine yavaş çalışmakta.
 
son haldeyken bildirim ad tanımlamasını silince hızlanma oluyor mu?
bildirim tespiti için kullandığınız formül kısaltılabilir ya da makroya dönüştürülür.
Kod:
=EĞER(YADA(BB12<0;BB13<0;BB14<0;BB15<0;BB16<0;BB17<0;BB18<0;BB19<0;BB20<0;BB25<0;AP12<10;AP13<10;AP14<10;AP15<10;AP16<10;AP17<10;AP18<10;AP19<10;AP20<10;AP21<10;AP22<10;AP23<10;AP25<10);"Yeni bildirim";"Bildirim yok")
 
son haldeyken bildirim ad tanımlamasını silince hızlanma oluyor mu?

Yok hocam olmuyor. Hızlanması için sayfakoruma ad tamlamasını da silmem gerekiyor bu seferde kod çalışmaz oluyor. Sorun o iki ad tamlamasında. İkisini birden silince her şey normale dönüyor. Sanırım bu sevdadan vazgeçeceğim.
 
Ad tamlaması yerine sayfa aktif olduğunda ya da sayfada değişiklik olduğunda çalışan bir kodla o resimlerin görünmesi ya da gizlenmesi sağlanabilir bence.

Bunun için uğraştım biraz ama ad tanımlarından sayfa korumasıyla ilgili olanı sildiğimde excel kilitlenip kendini kapattığı için devam edemedim maalesef :(
 
Son düzenleme:
İlgili sayfanın kod bölümündeki bu kodu silin
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = False Then
    Application.Calculate
End If
End Sub

yavaşlık baya gidiyor diğer taraftan fikrimi söylüyeyim gerekmedikçe hücreleri birleştirmeyiniz ve biçimleri ile oynamayınız dolayısıyla yavaşlamanın en büyük sebeplerindendir bunlar tabi formüllerin yapısı ve çok olması da yavaşlama sebeplerindendir.
 
Merhaba,
Anladığım kadarıyla rapor sayfasında 2 tanımlamayı kullanacak bir durum yok. Bu durumda rapor sayfasında hızlanma için aşağıdaki gibi basit bir yol izlenebilir. 1 değerinin bir anlamı yoktur.

bildirimler tanımındaki formülü:
Kod:
=EĞER(ESAYIYSA(MBUL("RAPORLAR";HÜCRE("DOSYAADI";A1)));1;KAYDIR(Veri!$G$102;KAÇINCI('Yağ Bakımları'!$BC$3;Veri!$D$102:$D$103;0)-1;0;1;1))

sayfakoru tanımındaki formülü:
Kod:
=EĞER(ESAYIYSA(MBUL("RAPORLAR";HÜCRE("DOSYAADI";A1)));1;KAYDIR(Veri!$G$104;KAÇINCI(Veri!$D$106;Veri!$D$104:$D$105;0)-1;0;1;1))

Değiştirerek deneyin.
 
Son düzenleme:
İlgilendiğiz için herkese çok teşekkür ederim. Önerilerinizi bilgisayara geçince deniyeceğim inşallah.
 
Rapor sayfasındaki geri ve ileri makrolarını bunlarla değiştirip denermisiniz.

Rich (BB code):
Sub İleri()

With Application
.Calculation = xlManual
.ScreenUpdating = False
.EnableEvents = False
End With

Sheets("Raporlar").Range("K5").Value = Sheets("Raporlar").Range("K5") + 1
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlAutomatic
End With


End Sub

Sub Geri()


With Application
.Calculation = xlManual
.ScreenUpdating = False
.EnableEvents = False
End With
Sheets("Raporlar").Range("K5").Value = Sheets("Raporlar").Range("K5") - 1
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlAutomatic
End With


End Sub
 
Arkadaşlar o kadar kod yazdınız emek verdiğiniz size çok zahmet verdiğimi düşünüyorum hakkınızı helal edin halit3 ve Ömer ustamın verdiği kodlarla Excel dosyası biraz daha hızlı çalışmaya başladı. Sağ olun.
 
Geri
Üst