Başlangıç Hücresinden itibaren Çapraz Hücreleri Toplama

  • Konuyu başlatan Konuyu başlatan 52779
  • Başlangıç tarihi Başlangıç tarihi

Kısa Açıklama

Başlangıç Hücresinden itibaren Çapraz Hücreleri Toplama isimli başlıkta, ilgili işlemlere dair detaylar yer almaktadır.
Kare Alanın Köşegenlerinin Toplamının Bulunması konusunu daha önce ele almıştık.
Bu sorumuz ise, kare olmayabilen farklı boyuttaki bir tabloda, hem başlangıç hücresi ve hem de Yön seçimleri yapılmasıyla belirlenen,
Başlangıç Hücresinden itibaren Çapraz Yöndeki Hücrelerin Toplamının bulunması ele alınmaktadır.

Soruya ait resim şöyledir. Veri tablosu 15 satır x 10 kolondan oluşmaktadır.
R421.webp

Başlangıç Hücresi için
  • satır numarası, P5 hücresindeki açılır listeden seçilir
  • sütun numarası, P6 hücresindeki açılır listeden seçilir
Çapraz hücrelerin yönleri ise
  • Aşağı / Yukarı (Yön.1)
  • Sola / Sağa (Yön.2)
P9 : P12 aralığında seçenek düğmelerinin işaretlenmesiyle sağlanır.
Ve böylelikle, Tabloda, Başlangıç Hücresinden itibaren Çapraz Yöndeki Hücreler belirlenmiş olur.
Sorumuz ise bu çapraz hücrelerin toplamının hesaplanmasıdır.

Çözümler için Excel deki tüm yöntemler kullanılabilir.
Katılımlarınızı bekleriz... Katılım sağlayacaklara şimdiden teşekkürler...
Çalışma amaçlı dosya ektedir.
 
Ekli dosyalar
Denemelerime başladım... Evet makro sonlanma olayı çözümlenmiş, ama,
Sonuçlarda hata var Hocam.
İşte denediklerim.
Yön Yukarı ve Sağa olmak üzere,
Satır 8 ve Sütun 1 için Toplam 57 olması gerekirken elde edilen sonuç : 55 Hatalı
Satır 9 ve Sütun 1 için Toplam 54 olması gerekirken elde edilen sonuç : 44 Hatalı
Satır 10 ve Sütun 1 için Toplam 58 olması gerekirken elde edilen sonuç : 56 Hatalı
Satır 11 ve Sütun 1 için Toplam 47 olması gerekirken elde edilen sonuç : 47 Doğru
Satır 12 ve Sütun 1 için Toplam 44 olması gerekirken elde edilen sonuç : 44 Doğru

Kontrol amaçlı olarak çözümümü paylaşayım. (Excel2021/365)
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
 
Hocam,
Sonuçlar doğru geliyor.
Yön Yukarı Sağa ya da Sola tüm sonuçlar doğru ve sonlanmada hata yok.

Yön aşağı - sola olunca, çapraz hücreler 15. satırda (1. sütunu hariç) bitiyor olunca, o meşhur hata yine çıkmaya başlıyor. Ama toplamları doğru hesaplıyor.
Örnek verecek olursam
Aşağı - sola , satır 10 sütun 6 olduğunda bitiş hücresi 15. satır ve 1. sütun ve hata vermiyor.
Aşağı - sola , satır 11 sütun 6 olduğunda bitiş hücresi 15. satır ve 2. sütun ve hata geliyor..
Aşağı - sola , satır 12 sütun 6 olduğunda bitiş hücresi 15. satır ve 3. sütun ve hata geliyor..
Ve Aşağı - sağa yönünde problem yok... Sonuçlar da doğru...
 
Döngü SIFIRdan başlatıldığında koddaki bir satıra daha gerek kalmamış oluyor.
Önceki cevabımda verdiğim kod şöyle güncellendiğinde de aynı sonuçlar alınıyor.


VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(7 satır)
 
@Ömer BARAN
@cesur

Gerek katkılarınız ve gerekse MÜKEMMEL çözümleriniz için çok çok teşekkür ediyorum.
Saygılarımla...

Bir soru :
For i = 1 To 15
ibaresindeki 15 değerini de KTF deki Alan ya da makrodaki Range("D4:M18") den yararlanarak getirmek daha doğru olmaz mı?

ve makro kodlarındaki
If a = 0 Or a = 11 Then Exit For
If b = 0 Or b = 16 Then Exit For
11 ve 16 değerlerini
 
@52779 sayın hocam Range("D4:M18") zaten diziye almıştım ve onu kullanıyorum. Sonrasında sayfadan tamamen bağımsız çalışıyorum. Bu nedenle diğer kodlara ihtiyaç duyuluyor. Sayfa ile çalışıldığında renkler üzerinden giderek te hesaplama yapılabilir. Bağımsız olmak bana daha güzel geliyor.
 
@cesur Hocam
Yapım itibariyle, Anlatmakta zorluk çekiyorum Ve de anlamakta..
Örnekle anlatayım
Diziye aldığınız Veri alanımız D4:M18 değil de D4 : J13 olsun. Yani 10 satır x 7 kolon
For 1 to 15 deki 15 değerini 10 yazmamız,
aynı şekilde
f a = 0 Or a = 11 Then Exit For
If b = 0 Or b = 16 Then Exit For
ifadelerindeki 11 değerini 8 ve 16 değerini 11 olarak yazmamız gerekmiyor mu?

işte bu değerleri otomatik olarak verdirmek daha doğru olmaz mı?
benim sorum buydu....
 
@52779 Hocam olabilir. Aslında satır ve sütun numaralarını kod ile buldurmak kolay onunla bulunur ve +1 değeri alınabilir. Ancak burada problem çözümüne odaklanınca bunlara fazla dikkat etmiyorum.
 
Geri
Üst