[ Asirin ] - Anasayfa
  - Arşiv
     - Bilgisayar, (Bilgisayar üzerine bilgiler...)
Excel Dosyanız Yavaş Çalışıyorsa...
23885 defa okundu,

Eğer Excel kullanarak bir program yaptıysanız (gerek makro ile  gerek kodları yazarak) ve de üstüne verileriniz yüksekse haliyle Excel yavaş çalışacaktır. Aşağıda vereceğim kodlar nispeten programınızın daha rahat çalışmasını sağlayacaktır. Koşullu Biçimlendirme, Tablolar, Renklendirmeler, vb. gibi şeyleri tek tek anlatmıyorum bunları zaten internette araştırarak yapmışsınızdır. Konuya hakim olduğunuzu düşünerekten işlemleri kabaca anlatacağım. Bu kodları programınızın başına ve sonuna ekleyiniz.


Hangi işlemde yavaş çalışıyor ise giriş satırına yazılması gereken:

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual


Son satırına yazılması gereken:

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True


Örnek uygulanmış şekli:

Sub GuncelOlmayanlar()

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

        For GuncellenecekVeri = 2 To GenelKategoriVeri
            If "HAYIR" = Range("Veri!L" & GuncellenecekVeri).Value Then
                GuncellenecekVerileriGetir = GuncellenecekVerileriGetir + 1
                Range("Rapor!A" & GuncellenecekVerileriGetir).Value = GuncellenecekVerileriGetir - 1
                Range("Rapor!B" & GuncellenecekVerileriGetir).Value = Range("Veri!F" & GuncellenecekVeri).Value
                Range("Rapor!C" & GuncellenecekVerileriGetir).Value = Range("Veri!C" & GuncellenecekVeri).Value
                Range("Rapor!D" & GuncellenecekVerileriGetir).Value = Range("Veri!D" & GuncellenecekVeri).Value
                Range("Rapor!E" & GuncellenecekVerileriGetir).Value = Range("Veri!E" & GuncellenecekVeri).Value
                Range("Rapor!F" & GuncellenecekVerileriGetir).Value = Range("Veri!J" & GuncellenecekVeri).Value
                Range("Rapor!G" & GuncellenecekVerileriGetir).Value = Range("Veri!M" & GuncellenecekVeri).Value
                Range("Rapor!Z" & GuncellenecekVerileriGetir).Value = Range("Veri!A" & GuncellenecekVeri).Value
            End If
        Next GuncellenecekVeri

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

End Sub


Peki bu kodlar ne işe yarıyor?

Application.ScreenUpdating = Kapatırsak ekran sabitmiş gibi kalıyor, yapılan işlemleri o an göremiyoruz. False komutu ile durdurup işlemler bittiğinde True komutu ile son halini görebiliyoruz.

Application.Calculation = Eğer bir formül varsa hesaplama işlemini anında yapıyor. xlCalculationManual komutu hesaplama işlemini bizim daha sonra kendi çalıştıracağımızı bildirir. Eğer kapatırsanız, yaptığınız formüllerin sonuçlarının değişmediğini göreceksiniz. Yani 2 ile 2 yi topladığınızda sonuç 4 vermesi gerekir normalde ama biz bu işlemi manuel yapacağımızı bildirdiğimiz için siz sayılara ne  yazarsanız yazın sonuç hep 4 olacaktır. mesela 2 ile 3 topladığımızda 5 olması gerekirsen sistemde halen 4 gözükecektir. xlCalculationAutomatic komutu ise Excel'e her veri girişinde formül olsun olmasın hücreleri hesaplamaya çalışır. Varsayılanı da bu şekildedir.

Özetlersek:

Siz Excel'e her seferinde bir şeyler yazdığınızda Excel arkaplanda bir sürü işlem yapıyor. Programımız bize sonuç dönene kadar bu işlemleri geçici olarak kapatıp açıyoruz.

----------------------------------------------------------------- 

Detaylı Etiketler: Excel yavaş çalışıyor, Excel makro kodları çok yavaş, Excel vb işlemleri kasıyor, Excel hızlandırma, Excel programını hızlandırma,

Yazan: Cengizhan, 17 Mayıs 2020 Pazar 21:00
Valla süper olsdu bu cok işe yaradı Allah razı olsun sizden emeginize saglık
Yazan: Mustafa, 22 Ocak 2020 Çarşamba 18:21
İşe yaradı teşekkürler
Yazan: Erkan, 22 Ocak 2019 Salı 20:28
Formülü bol olan sayfalar için ideal bir yöntem.
Yazan: pasaunal66, 28 Mayıs 2018 Pazartesi 20:22
çok teşekkürler işe yaradı.
4 Yorum