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

Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
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

Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
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
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Set Buton = ActiveSheet.Shapes(Application.Caller)

Bu satırların amacı nedir?
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
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?
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
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

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Dosyayı yükleyememişsiniz.
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Yine mi ekleyemedik acaba
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Şahsen o resmi göstermeyi nasıl yaptığınızı bile anlayamadım maalesef. Çözümü merakla bekliyorum.
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Bende merakla bekliyorum. ????
 

systran

Destek Ekibi
Destek Ekibi
Katılım
15 Aralık 2007
Mesajlar
1,573
Excel Vers. ve Dili
2007 [TR], 2013 [TR]
ş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
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
ş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.
 

systran

Destek Ekibi
Destek Ekibi
Katılım
15 Aralık 2007
Mesajlar
1,573
Excel Vers. ve Dili
2007 [TR], 2013 [TR]
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")
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
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.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
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:

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
İ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.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
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:
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
İlgilendiğiz için herkese çok teşekkür ederim. Önerilerinizi bilgisayara geçince deniyeceğim inşallah.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
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
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
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.
 
Üst