Mevcut kodu güncelleyemiyorum

hadromer

Altın Üye
Katılım
23 Ekim 2015
Mesajlar
402
Excel Vers. ve Dili
LTSC Professional Plus 2021 64 Bit Türkçe
Altın Üyelik Bitiş Tarihi
26-04-2028
Merhaba
Daha önce https://www.excel.web.tr/threads/bir-suetundaki-verilerin-yuezde-kacinin-hesaplandigini-bulmak.203002/ buradaki soruma çözüm sunulmuştu.

Bu konuda sorunumu çözen kod aşağıdaki gibidir. Bu kod ekte yer alan "eski" adlı dosyam için hazırlanmıştır. Tekrar teşekkür ediyorum. bu kodda değişiklik yapmak isiyorum
Kod:
Private Sub Worksheet_Activate()
    Dim Dict As Object, DictSayfa As Object, Sh As Worksheet, Liste()
    Dim i As Integer, k As Integer, SatırSay As Integer
    'On Error Resume Next
    SatırSay = 177
    Range("A2:XFD" & Rows.Count).ClearContents
    Set Dict = CreateObject("Scripting.Dictionary")
    Set DictSayfa = CreateObject("Scripting.Dictionary")
    For Each Sh In Worksheets
        If Sh.Name Like "S##" Then DictSayfa.Add Sh.Name, 1
    Next Sh
    For i = 25 To Worksheets("Şablon").Range("XFD1").End(xlToLeft).Column
        If Not Dict.Exists(UCase(Worksheets("Şablon").Cells(1, i))) And UCase(Worksheets("Şablon").Cells(1, i)) <> "" Then Dict.Add UCase(Worksheets("Şablon").Cells(1, i)), i
    Next i
    ReDim Liste(1 To DictSayfa.Count, 1 To 2 + Dict.Count * 2)
    For i = 1 To DictSayfa.Count
        Set Sh = Worksheets(DictSayfa.Keys()(i - 1))
        Liste(i, 1) = Sh.Name
        Liste(i, 2) = WorksheetFunction.CountIf(Sh.Range("Y3:Y179"), ">0")
        For k = 1 To Dict.Count
            Liste(i, 2 * k + 1) = WorksheetFunction.CountIf(Sh.Range("A1").Offset(2, Dict.items()(k - 1) - 1).Resize(SatırSay, 1), ">0")
            Liste(i, 2 * k + 2) = Liste(i, 2 * k + 1) / Liste(i, 2) * 100
        Next k
    Next i
    Range("A2").Resize(UBound(Liste, 1), UBound(Liste, 2)) = Liste
End Sub
eski adlı dosyamda yer alan sütun sayılarımda bir değişiklik yapmak durumunda kaldım.

Yukarıdaki koda göre Y sütunu soluna 4 adet yeni sütun eklediğim için AC sütununa kaydı.Sağ tarafta ise BV son sütun iken BV'dan sonrasına da 4 yeni sütun eklendi.
bu değişiklikler sonrası Liste(i, 2) = WorksheetFunction.CountIf(Sh.Range("Y3:Y179"), ">0") kısmında Y yerine AC yazdım ancak ne kadar uğraştımsa istediğim sonucu elde edemedim.

Yeni adlı dosyama göre bu kodda nerelerde değişiklik yapacağımı bir türlü bulamadım. YApmak istediğim şeyler aslında yukarıdaki konu linkindemevcut isterseniz yeniden aktarabilirim.
Yardımcı olur musunuz ?
 

Ekli dosyalar

Üst