• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü Excel VBA Büyük Veride Döngü Çok Yavaş Çalışıyor ve Ekran Donuyor (Hızlandırma Kodu)

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

MAHMUT ERGİN

Yeni Üye
Katılım
2 Nis 2024
Mesajlar
3
Aldığı beğeni
0
Katkı
%0.00
Excel V
Office 2010 TR
Konu Sahibi
İyi forumlar herkese. Yaklaşık 45.000 satırlık bir stok tablom var. Yazdığım makro ile For i = 2 To sonSatir şeklinde bir döngü kurup satırları tek tek kontrol ettiriyorum ve belirli kritere uyanların satır rengini değiştirip yan sayfaya kopyalatıyorum.
Kod çalışıyor fakat işlem neredeyse 3-4 dakika sürüyor ve o esnada Excel "Yanıt Vermiyor" moduna geçip donuyor. Kullanıcılar program çöktü zannediyor.
Bu döngüyü hızlandırmanın, bellekte (RAM) çalıştırmanın bir yolu var mıdır? Application.ScreenUpdating = False satırını ekledim biraz fark etti ama hala çok hantal. Dizi (Array) yöntemiyle bu işin çok daha hızlı yapıldığını duydum ama kodu nasıl revize edeceğimi bilmiyorum. Mevcut kod şablonumu ekteki dosyaya bıraktım, optimize edebilir miyiz?
 
Merhaba.

Ekli dosyanızda sorunuzdaki gibi bir karşılaştırma yada karşılaştırılacak bir kurala rastlamadım. Asıl yapmak istediğinize göre dosyayı eklerseniz yardımcı olmaya çalışırız.

İyi çalışmalar.
 
Konu Sahibi
Haklısınız KarıncaZ hocam kusura bakmayın, aceleyle yüklerken asıl makroyu yazdığım modülü içine eklemeyi unutmuşum, sadece ham verileri göndermişim valla.
Yapmak istediğim kurgu tam olarak şu:
B sütunundaki (Miktar) değeri 20'den küçük olan satırların C sütununa (Durum) "Kritik Stok" yazdırmak ve bu satırların arka planını kırmızı yapmak istiyorum.
Normalde aşağıdaki gibi klasik bir döngü kurdum ama satır sayısı 40-50 binleri bulunca Excel kitleniyor


HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.

Bu işlemi sayfada tek tek satır gezmeden, diziyle (Array) hafızada yapıp tek seferde sayfaya basarak nasıl hızlandırabiliriz? Şimdiden çok teşekkür ederim hocam
 
Merhaba.

Ekteki kodları yeni bir modüle yapıştırıp deneyin.
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.


İstediğiniz gibi olup olmadığını belirtirseniz başka yöntemlerde deneriz.

İyi çalışmalar.
 
Çözüm
Alternatif
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Merhaba,

Başlığı ve cevapları incelerken kafama bir soru takıldı. Bu bilgiyi teyit etmek istedim.

Alicimri beyin paylaştığı kod da veriler kritere göre filtreleniyor. Sonra filtreli durumdayken alana "Kritik Stok" ifadesi yazılıyor.

Bildiğim kadarıyla excelde filtreli alana veri yazarken excel gizli satırları gözardı etmiyor. Yani görünmeyen satırlarda ilgili ifadeyi yazıyor.

Bu davranışın düzelmesiyle ilgili Microsoft tarafından yayınlanmış bir döküman var mı? Bu kod bloğu farklı versiyonlarda bu sorunu ortaya çıkarabilir mi?

ActiveSheet.Range("A1:B" & son).AutoFilter Field:=2, Criteria1:="<" & 20 _ , Operator:=xlAnd ActiveSheet.Range("A2:C" & son).Interior.Color = 255 ActiveSheet.Range("C2:C" & son).Value = "Kritik Stok"
 
excelde filtreli alana veri yazarken excel gizli satırları gözardı etmiyor.
Satırları gizlerseniz gözardı etmez, ancak filtrelerseniz gözardı eder. Yukardaki kodların yanında 1 ila 10 satırlar filtrelensin 5, 7, 9 satırlar, görünem olsun, A1:A10 aralığı kopyalayıp, başka sayfaya yapıştırıncada ardışık olarak bu görünen verileri yapıştırıyor.
Şimdiye kadar 2013 ilerisi excel kullanmadım, Google AI'e 365 excel için sordum varsayılan olarak gözardı eder diyor.
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst