• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Soru Çoketopla Makro İle Yapımı Hakkında

  • Konbuyu başlatan Konbuyu başlatan mukoli
  • Başlangıç tarihi Başlangıç tarihi
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Merhabalar ekteki dosyada 30 adet şubem olucak sayfa2 deki A sütunundaki depo adlarına bakarak hücrelere çoketopla yapıcak sayfa1den . Makro çalışıyor fakat çok şube oldugu için hepsini ayrı ayrı yazmam lazım daha kısası yapılabilirmi yada makro kasmıcak şekilde daha iyisini ustalarım yapabilirmi yardımcı olursanız sevinirim.
Kod:
=ÇOKETOPLA(Sube_Hareketleri!J:J;Sube_Hareketleri!I:I;"02";Sube_Hareketleri!D:D;"AKTUEL")
Ana formül bu olucak. Makro çalıştığında formül bozuluyor J:J yerine K:K yazıyor gibi
 

Ekli dosyalar

Son düzenleme:
Açıkçası ne yapmaya çalıştığınızı anlayamadım.
Şu mudur?
Sayfa2 A sütunundaki depo ismine göre, B-K arasındaki alanlara
Sayfa1 D sütunundaki Depo isimleri ve I sütunundaki Personel (siz sanırım şube diye buna diyorsunuz) numaralarını baz alarak, toplam değerleri hesaplayacaksınız.
 
Dogrudur Hocam J sütunu Toplucak kriterlere göre sayfa 2 deki şubelere göre karşısına yazıcak
Kod:
=ÇOKETOPLA(Sayfa1!J:J;Sayfa1!I:I;"01";Sayfa1!D:D;"DEPO01")
Bunun gibi bu sadece DEPO01 getiriyor sayfa2 b2 alanına benim yapmak istediğim. Makroyla bütün depoların toplamlarını ayrı ayrı sütunlara getirmek.
Kod:
=ÇOKETOPLA(Sayfa1!K:K;Sayfa1!J:J;"02";Sayfa1!E:E;"DEPO01")
C2 Alanına kod geliyor ama range değerleri değişiyor
 
Son düzenleme:
Formülle çözüm isterseniz
Sayfa2 B2 hücresine kopyalayıp aşağı ve sağa doğru sürükleyerek çoğaltabilirsininiz.

=ÇOKETOPLA(Sayfa1!$J:$J;Sayfa1!$D:$D;$A2;Sayfa1!$I:$I;B$1)
 
Formülle çözüm isterseniz
Sayfa2 B2 hücresine kopyalayıp aşağı ve sağa doğru sürükleyerek çoğaltabilirsininiz.

=ÇOKETOPLA(Sayfa1!$J:$J;Sayfa1!$D:$D;$A2;Sayfa1!$I:$I;B$1)
Teşekkürler hocam formülle ilgili sıkıntı sadece makro olursa daha iyi formülle hesaplama yapıyor excel yavaşlıyor oyuzden
 
Değişkeni Long seçtiğinize göre Sayfa1 de satır sayınız çoğalacak anlamına mı geliyor?
Eğer öyleyse WorksheetFunction Metodu oldukça kasacaktır.

C++:
Sub Makro1()
Dim i As Long, k As Integer, Son As Long
Application.ScreenUpdating = False
With Worksheets("Sayfa1")
    Son = .Range("A" & Rows.Count).End(3).Row
    For i = 2 To Cells(Rows.Count, "A").End(3).Row
        For k = 2 To Cells(1, Columns.Count).End(xlToLeft).Column
            Cells(i, k) = WorksheetFunction.SumIfs(.Range("J2:J" & Son), .Range("D2:D" & Son), Range("A" & i), .Range("I2:I" & Son), Cells(1, k))
        Next k
    Next i
End With
Application.ScreenUpdating = True
End Sub
 
Değişkeni Long seçtiğinize göre Sayfa1 de satır sayınız çoğalacak anlamına mı geliyor?
Eğer öyleyse WorksheetFunction Metodu oldukça kasacaktır.

C++:
Sub Makro1()
Dim i As Long, k As Integer, Son As Long
Application.ScreenUpdating = False
With Worksheets("Sayfa1")
    Son = .Range("A" & Rows.Count).End(3).Row
    For i = 2 To Cells(Rows.Count, "A").End(3).Row
        For k = 2 To Cells(1, Columns.Count).End(xlToLeft).Column
            Cells(i, k) = WorksheetFunction.SumIfs(.Range("J2:J" & Son), .Range("D2:D" & Son), Range("A" & i), .Range("I2:I" & Son), Cells(1, k))
        Next k
    Next i
End With
Application.ScreenUpdating = True
End Sub
Elinize Sağlık hocam istediğim kod bu çok teşekkür ederim. Peki kasmaması için farklı kod yapılabilirmi
 
Ben olsam en hızlı ve pratik yöntem olan Özet Tablo (Pivot) kullanırdım.

Tablonuza dinamik alan tanımlaması yaptım. Dilediğiniz kadar veri ekleyip silebilirsiniz.
 

Ekli dosyalar

Selamlar

Sayın @mukoli
Korhan Hocam en hızlı çözümü sunmuş sağ olsun.
Benim yaptığım da Alternatif olsun
 

Ekli dosyalar

Ek olarak bu işlemler için döngüye gerek yok. Aşağıdaki şekilde ilgili hücrelere blok olarak formülü yazdırıp sonra değere çevirebilirsiniz.

C++:
Option Explicit

Sub Sumifs_Test()
    With Sheets("Sayfa2").Range("B2:K6")
        .Formula = "=SUMIFS(Sayfa1!$J:$J,Sayfa1!$I:$I,B$1,Sayfa1!$D:$D,$A2)"
        .Value = .Value
    End With
End Sub
 
Selamlar
@Korhan Ayhan Hocam
Daha çok şey öğrenmeliyiz siz ve diğer hocalarımızdan.
Elinize Sağlık

Saygılar
 
Hepinize ayrı ayrı çok teşekkür ederim. Ellerinize Bilginize sağlık
 
Geri
Üst