K

Çözüldü ÇAPRAZARA Fonksiyonunu VBA Koduna Dönüştürme

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

keremd

Normal Üye
Excel Versiyonu
Excel 2021
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Sn. Arkadaşlar günaydın
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
böyle bir fonksiyonum var.
C VE D sütunlarına (C ve D sütunları GELİR diye bir sayfada yer alıyor) veri girdiğimde E sütununa veri girmesini sağlıyorum. Dosyamdaki veriler çoğalınca sistem ağır çalışıyor
bunu nasıl VBA koduna dönüştürebilirim.

Yardımlarınız için şimdiden teşekkürler
 
Moderatörün son düzenlenenleri:
Çözüm
@keremd
-- VBA ekranını açın,
-- Üst menüden INSERT >> MODULE yi seçin,
-- ThisWorkbook (BuÇalışmaKitabı) bölümüne ilk kodu yapıştırın
-- MODULE1'e ikinci kodu yapıştırın
-- VBA ekranını kapatın.
-- GELİR sayfasında E5 hücresine =DSBUL(C5:D5) formülünü uygulayın.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(11 satır)
ÇAPRAZARA, büyük verilere yönelik olarak tanımlanmış bir fonksiyondur. Formülü, VBA'ya da dönüştürseniz; tüm verilere uygulandığında çok farklılık olmaz.
Bahsettiğiniz yavaşlamaya sebep olacak milyonlarca satırlık veri olması lazım.
Ayrıca, kullandığınız arka plan renkleri bile emin olun Çaprazara'dan daha daha fazla yorar sistemi.
İlle'de VBA isterseniz, ÇAPRAZARA ile değilde farklı şekilde yazmak daha mantıklı olur.
Şu anda müsait değilim, akşam için ancak bakabilirim.
Bu süreçte belki @Ömer BARAN hocam destek olur.

İyi çalışmalar
 
@keremd
-- VBA ekranını açın,
-- Üst menüden INSERT >> MODULE yi seçin,
-- ThisWorkbook (BuÇalışmaKitabı) bölümüne ilk kodu yapıştırın
-- MODULE1'e ikinci kodu yapıştırın
-- VBA ekranını kapatın.
-- GELİR sayfasında E5 hücresine =DSBUL(C5:D5) formülünü uygulayın.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(15 satır)
 
Çözüm
@keremd

Aslına bakarsanız olay için özel bir kodlamaya, KTF oluşturmaya vs gerek yok.
Yavaşlamanın temelinde, formüllerde ....AYAR!$P:$P&AYAR!$Q:$Q;AYAR!R:R
gibi tüm sütunu içine alan bir yapı kullanılması.
Böyle bir yapıda yavaşlama kaçınılmaz.

Bunun yerine; aşağıdaki gibi 3 adet AD TANIMLAMASI oluşturup
(kırmızılar AD, karşılarındakiler bu ADlar için kullanılacak formüller),

1711109941416.webp


E5 hücresine
=İNDİS(sakinler;KAÇINCI(C5&"|"&D5;bd;0))
formülünü uygulamanız da yeterli olurdu.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst