Uzmanım gayet güzel çalışıyor, emeklerinize sağlık.Ek olarak "C SÜTUNUNA GÖRE" sayfası için aşağıdaki kod ile excelin kendi özet tablosunu otomatik oluşturup kullanabilirsiniz.
Benim bilgisayarımda arada hata verdi. Ama dosyayı kaydedip tekrar çalıştırdığımda düzeliyor. Ya da dosyayı kapatıp açıp tekrar denediğimde hata vermiyor.
C++:Option Explicit Sub Pivot_Table() Dim S1 As Worksheet, Pivot_Data As Range Dim Pivot_Cache As PivotCaches Dim Pivot_Table As PivotTables, Zaman As Double Zaman = Timer Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Set S1 = Sheets("C SÜTUNUNA GÖRE") S1.Range("F:XFD").Clear Set Pivot_Data = S1.Range("A1").CurrentRegion On Error Resume Next Set Pivot_Cache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=Pivot_Data). _ CreatePivotTable(TableDestination:=S1.Range("F1"), TableName:="Pivot_Table1") Set Pivot_Table = Pivot_Cache.CreatePivotTable(TableDestination:=S1.Range("A1"), TableName:="Pivot_Table1") On Error GoTo 0 With S1.PivotTables("Pivot_Table1") .PivotFields("HANGİ DEPO").Orientation = xlRowField .PivotFields("HANGİ DEPO").Position = 1 .AddDataField ActiveSheet.PivotTables("Pivot_Table1").PivotFields("ADETLER"), "Sum of ADETLER", xlSum .PivotFields("ÜRÜN KODU").Orientation = xlColumnField .PivotFields("ÜRÜN KODU").Position = 1 End With S1.Range("F1").CurrentRegion.Offset(1).Copy S1.Range("F1").PasteSpecial xlPasteValues Application.CutCopyMode = False S1.Range("F1") = "ÜRÜN KODU" S1.Range(S1.Range("F1"), S1.Range("F1").End(xlToRight)).Font.Bold = True S1.Range(S1.Range("F1"), S1.Range("F1").End(xlDown)).Font.Bold = True S1.Range(S1.Cells(S1.Rows.Count, "F").End(3), S1.Cells(S1.Rows.Count, "F").End(3).End(xlToRight)).Font.Bold = True S1.Range(S1.Cells(2, S1.Columns.Count).End(1), S1.Cells(2, S1.Columns.Count).End(1).End(xlDown)).Font.Bold = True S1.Range("A1").Select S1.Columns.AutoFit Set S1 = Nothing Set Pivot_Data = Nothing Set Pivot_Cache = Nothing Set Pivot_Table = Nothing Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True MsgBox "İşleminiz tamamlanmıştır." & vbCr & vbCr & _ "İşlem süresi ; " & Format((Timer - Zaman), "0.00") & " Saniye" End Sub