Dear Pak hendrik Karnadi, Pak Anton Suryadi, dan Mr Kid

 

Mohon maaf sebelumnya kalo saya baru bisa balas email, karena ada 1 dan lain
hal.

 

BTW, rumus yang di berikan oleh Pak hendrik Karnadi, Pak Anton Suryadi, dan
Mr Kid, semua berjalan dengan baik

Dan masing masing punya Jurus sendiri..karena padepokannya juga berbeda J

 

Terimakasih, atas penjelasan yang sudah terperinci oleh Mr Kid, sehingga
saya yang "Grotal Gratul" soal excel harus sedikit belajar tentang
penjelasan yang sudah di berikan.

 

Salam 

 

Yan Novianto

 

From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
On Behalf Of Kid Mr.
Sent: Saturday, February 18, 2012 10:29 AM
To: belajar-excel@yahoogroups.com
Subject: Re: [belajar-excel] Mengubah value setting di data pivot menjadi
SUM / COUNT secera multi

 

  

Dear Yan,

Coba buat sebuah module dan copas routine berikut :

Public Sub SeragamPivotDataField()
    Dim pvtField As PivotField
'variabel object pivot data field
    Dim lPvtFunc As Long
'variabel nilai properti konstanta fungsi summary
    
    On Error GoTo Keluar                                            'trap
error (misal gak ada data field)
    
    lPvtFunc = -4157                                                'set
default konstanta fungsi summary
    If PivotTables(1).DataFields(1).Function = lPvtFunc Then        'ubah
konstanta fungsi summary yang harus digunakan
        lPvtFunc = -4112
    End If
    
    For Each pvtField In PivotTables(1).DataFields                  'loop
setiap data field
        pvtField.Function = lPvtFunc                                'ubah
konstanta summary data field terpilih
    Next pvtField                                                   'ke data
field berikutnya
    
    Exit Sub                                                        'keluar
dari routine (supaya gak masuk blok trap error)

'blok trap error
Keluar:
    Err.Clear                                                       'clear
status error
    On Error GoTo 0                                                 'clear
trap error
    
    'pesan error ke user
    MsgBox "Tidak ada data field", vbCritical, "Seragamkan Summary Function
Data Fields"
End Sub

Kemudian buat sebuah shapes dalam worksheet dan assign macro ke routine di
atas.

Proses penyeragaman adalah berdasar data field pertama.
Jika data field pertama bukanlah Sum, maka akan dijadikan sum. Silakan coba
set setiap data field dengan fungsi summary yang berbeda-beda.
Jika data field pertama adalah Sum, makan akan dijadikan Count.
Silakan ubah nilai konstanta (seperti -4157 atau -4112) dengan nilai lain
yang dibutuhkan.
Ketika tidak ada data field terpasang, maka akan muncul pesan error. Silakan
coba untuk mengosongkan data field.

Bagaimana jika ingin menggunakan fungsi summary lebih dari 2 ? 
misal ingin berubah berputar dengan urutan : Sum, Count, Max lalu ke Sum
lagi dst.
Penggunaan array yang berisi konstanta fungsi-fungsi summary yang akan
digunakan akan membantu proses pemilihan fungsi summary berikutnya yang akan
digunakan. Proses ini membutuhkan sebuah loop terhadap array konstanta
tersebut.
Kira-kira bunyi routine-nya menjadi :
Public Sub SeragamPivotDataField1()
    Dim pvtField As PivotField
'variabel object pivot data field
    Dim vPvtFuncColls As Variant, vLoopColls As Variant
   Dim lPvtFuncIdx As Long, lLoop As Long
    
    On Error GoTo Keluar                                            'trap
error (misal gak ada data field)
    
    vPvtFuncColls = Array(-4157, -4112, -4136, -4157)     'base option
default adalah 0 pada VBA 6.5
    lPvtFuncIdx = 0
    For Each vLoopColls In vPvtFuncColls
        If ActiveSheet.PivotTables(1).DataFields(1).Function = vLoopColls
Then
            lPvtFuncIdx = lLoop + 1
            Exit For
        End If
        lLoop = lLoop + 1
    Next vLoopColls
    
    For Each pvtField In ActiveSheet.PivotTables(1).DataFields      'loop
setiap data field
        pvtField.Function = vPvtFuncColls(lPvtFuncIdx)              'ubah
konstanta summary data field terpilih
    Next pvtField                                                   'ke data
field berikutnya
    
    Exit Sub                                                        'keluar
dari routine (supaya gak masuk blok trap error)

'blok trap error
Keluar:
    Err.Clear                                                       'clear
status error
    On Error GoTo 0                                                 'clear
trap error
    
    'pesan error ke user
    MsgBox "Tidak ada data field", vbCritical, "Seragamkan Summary Function
Data Fields"
End Sub

Bagian deklarasi dimensi diubah, dari  Dim lPvtFunc As Long menjadi beberapa
baris yang berwarna magenta.

Blok penentuan nilai default dan pemilihan fungsi summary yang akan
digunakan berikutnya, yang berbunyi :
    lPvtFunc = -4157                                                
    If PivotTables(1).DataFields(1).Function = lPvtFunc Then        
        lPvtFunc = -4112
    End If

diubah menjadi : (warna merah)
1. pembuatan daftar (array) nilai konstanta dari fungsi-fungsi summary yang
akan digunakan :
vPvtFuncColls = Array(-4157, -4112, -4136, -4157)
Pengulangan item pertama array pada item terakhir array adalah sebagai
pengatur proses kembali ke item pertama array pada proses klik selanjutnya
oleh user.

2. penetapan nilai default, yaitu pada item pertama array yang ber-index 0
karena default base option adalah 0 pada VBA 6.5, kecuali ada deklarasi
penentuan base option.
lPvtFuncIdx = 0

3. loop mencari index array dari fungsi summary yang digunakan data field
pertama, kemudian set index array menjadi index dari fungsi summary
berikutnya yang ada di array.
    For Each vLoopColls In vPvtFuncColls
        If ActiveSheet.PivotTables(1).DataFields(1).Function = vLoopColls
Then
            lPvtFuncIdx = lLoop + 1
            Exit For
        End If
        lLoop = lLoop + 1
    Next vLoopColls

Bagian akhir yang disesuaikan adalah penentuan fungsi summary pada setiap
data field yang ada dalam pivot table, yaitu yang diberi warna hijau.
    For Each pvtField In ActiveSheet.PivotTables(1).DataFields      
        pvtField.Function = vPvtFuncColls(lPvtFuncIdx)              
    Next pvtField                 

Regards.
Kid.





On Wed, Feb 15, 2012 at 13:27, Yan Novianto <yan.novia...@yahoo.com> wrote:

  

Dear member milis excel,

 

Bantu untuk data di bawah ini :

 

Saya inginkan adalah merubah Value Field setting berubah dari COUNT menjadi
SUM atau sebalinya secara MULTI / bersama.

Saya coba dengan BLOK dari D2:H2 terus di atus menjadi SUM hasil yang ada
adalah yang ada di D2 saja yang berubah menjadi SUM, dan jika di balik dari
H2:D2 maka yang berubah adalah yang di H2

Jadi mana yang pertama kali di select itu yang bakal berubah.

 

Nah mumet sudah deh J, 

Tolong di bantu cara supaya bisa merubah seperti yang saya inginkan
bagaimana, karena kerja 1 -1 luama, data di samping kanan udah pada
ngantri..

 

Terimakasih temans

 

 



Kirim email ke