S

Çözüldü Verileri baska sayfaya özet getirme makrosu

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

selis

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Herkese merhabalar arkadaslar, ekteki excelde sunu yapmak istiyorum ; MIP SAYFASINDAKİ A sütunundaki verileri ince orta kalın malzemeler diye ayırıp B sütunundaki değerleri toplayıp ÖZET sayfasına yazsın ıstıyorum ekin ÖZET sayfasında istediğim seyı acıklamaya calıstım.
ÖZET sayfasındaki formata getirilecek degerler diğer profiller dediği ise verilen aralıgın dısında kalanlar L30X30X3 - L60X60X5 Arası İnce Grup-L300X300X35.
Şimdiden herkese teşekkürler...
 

Ekli dosyalar

@selis

Formülle çözüm önerim şöyle:
-- Aşağıdaki birinci formülü MIP sayfası T8 hücresine uygulayıp liste boyunca kopyalayın (yardımcı alan).
-- Aşağıdaki ikinci formülü de ÖZET sayfası B2 hücresine uygulayıp, B5 hücresine kadar kopyalayın.

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(2 satır)

.
 
@selis
İlk formüldeki (kritik olan bu formül zaten) hareket noktası
L40X40X4-S235JR ....... L150X150X14-S355J2 gibi ibarelerde ikinci X ile - işareti arasında kalan sayının tespit edilmesi.
Örneğin bunlardan birincisi için bu değer 4, ikincisi için ise 14.
Bu sonucu da ARA işlevinde ARANAN olarak kullanarak {1;6;13} dizisinden hangisine denk geliyorsa,
{1;2;3} dizisinde buna karşılık gelen elemanın hangisi olduğu bulunuyor.
Örneğe göre;
-- birincisi için ARANAN 4, ARAMA DİZİSİnin 1'inci elemanına denk geliyor, sonuç dizisinin 1'inci elemanı da 1 (sonuç)
-- ikincisi için ARANAN 14, ARAMA DİZİSİnin 3'üncü elemanına denk geliyor, sonuç dizisinin 3'üncü elemanı da 3 (sonuç)
Son olarak da bu SONUÇ değerlere göre ETOPLA işlemi yapılıyor ve kriter olarak SATIR()-1 kullanılıyor.

Umarım açıklayıcı olmuştur.

Uyarı: Dikkat ederseniz ikinci X'ten sonraki kısımdan hareket edildi yani, L40X40X veya L150X150X kısmıyla ilgilenilmedi.

.
 
@selis
Son örnek belgeye bakmadım.

İlk belgede tüm verilerde L100X100X10-S355J2 gibi arada TİRE işareti ve sonrasında harf/sayı da var idi.
Son belgenizde ise sadece tire öncesi kısım var.
Bu nedenle formülü şöyle değiştirin.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(4 satır)
 
@selis . Şöyle olabilir.
Kod 8 - 68'inci satır aralığındaki verileri kontrol eder ve ÖZET sayfasında sonuçları gösterir.
Formül cevabı verirken belirttiğim kriterler burada da geçerli.
L ile başlamayanlar 4, L ile başlayanlar, ikinci X'in sağındaki sayıya göre değerlendirilir.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(12 satır)
 
1631175050212.webp

Hocam böyle bır hata verdı
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
Hocam 68 değilde grand totale kadar alsa olur mu çünkü 68 100 bazen 200 olabiliyor, grand totale kadar alsa daha iyi olur
@selis

Koddaki 68 yerine WorksheetFunction.Match("Grand Total", m.[A:A], 0) - 1 yazılması yeterli olur.
@selis
Alıntıladığım mesajınıza cevaben verdiğim yukarıdaki cevapta sorun yok.
Ancak örnek belgenizde Grand Total satırı yerine "Grand " satırı var.
Bu durumda ilgili kod kısmını şöyle değiştirmek gerekir.


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

Ayrıca; ÖZET sayfasındaki GENEL TOPLAM satırı 7'inci satır olduğuna göre;
koddaki o.[B2:B6].ClearContents ve o.Cells(6, 2) = o.Cells(6, 2) + m.Cells(XD, 2) satırlarındaki 6 sayılarını 7 olarak değiştirin.

.
 
Üst