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
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 ?
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
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
-
327.6 KB Görüntüleme: 1
-
274.2 KB Görüntüleme: 0