Çö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:
You must log in to view content
(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:
You must log in to view content
(1 satır)
VBA:
You must log in to view content
(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:
You must log in to view content
(1 satır)
VBA:
You must log in to view content
(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...
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
7
Üst