Rabu, 06 Desember 2017

[belajar-excel] Digest Number 4370

10 Messages

Digest #4370

Messages

Tue Dec 5, 2017 6:38 pm (PST) . Posted by:

"nangagus"

Asalamualaikum warahmatullah,

terima kasih mas Kid atas penjelasannya.
Akan saya coba pelajari, bila ada kesulitan akan saya tanyakan kembali,
Terima kasih

Wasalamualaikum warahmatullah.

NangAgus

On 05/12/2017 15:50, 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] wrote:
> Wa'alaikumussalam wr wb
>
> Mas Nang,
>
> 1. sheets*(Index*) bagaimana urutan index?
> > mengikuti urutan yang ada di tab sheet.
> > jika user mengubah urutan di tab sheet, maka berubah juga urutan
> index-nya
>
> 2. Kesimpulannya lebih aman menggunakan nomor index atau menggunakan
> nama Sheet?
> (dengan asumsi user dapat mengubah urutan sheet maupun mengubah
> nama sheet)
> > Tidak ada yang aman.
> > Andaikan code name di workbook tersebut telah dibuat secara
> khusus (seperti Dat, ShDp, dan sebagainya), mungkin akan lebih aman
> jika menggunakan variabel object sheet ataupun collection
> > misal Code name di workbooks("Lain yang baru saja dibuka oleh
> VBA.xlsx") adalah ShDp dan Dat,
> maka bisa dibuatkan variabel shtDP dan shtDAT bertipe worksheet
> atau variabel array shtDIPAKAI(1 to ) [kalau pakai base 1] atau pakai
> object Collection
>
> Pakai contoh saja ya...
> Pilih salah satu dari 3 (tiga) cara berikut yang paling mudah dipahami
> dan nyaman digunakan...
>
>
> ​
> Wassalamu'alaikum wr wb
> Kid
>
>
>
>
>
>
>
>
> 2017-11-27 12:54 GMT+07:00 nangagus nangagus@gmail.com
> <mailto:nangagus@gmail.com> [belajar-excel]
> <belajar-excel@yahoogroups.com <mailto:belajar-excel@yahoogroups.com>>:
>
> Mas Kid,
>
> Asalamualaikum warahmatullah,
>
> Terima kasih atas penjelasannya,
>
> pada cekrip sheets*(Index*)
> bagaimana urutan index?
> Misalnya saya punya sheet seperti ini:
>
> apakah urutan indexnya adalah 1=Dat, 2=Munggah, 3= ShDp, 4=
> Sheet1, dst.
> kalau ada ditambahkan sebuah sheet lagi, urutanya berubah atau tidak?
> jika diubah urutannya di excel misalnya tab paling kiri adalah
> NSk, urutan index berubah atau tidak?
> Kesimpulannya lebih aman menggunakan nomor index atau menggunakan
> nama Sheet?
> (dengan asumsi user dapat mengubah urutan sheet maupun mengubah
> nama sheet)
> Wasalamualaikum warahmatullahiwabarakatuh.
> NangAgus
> On 05/12/2017 9:39, 'Mr. Kid' mr.nmkid@gmail.com
> <mailto:mr.nmkid@gmail.com> [belajar-excel] wrote:
>> wassalamu'alaikum wr wb
>>
>> mas Nang,
>>
>> Tidak bisa mas.
>> code name dipakai untuk wilayah kerja (scope) workbook itu saja.
>> Tidak bisa diakses dari luar, karena code name di sebuah workbook
>> itu memiliki scope Private.
>>
>> Wassalamu'alaikum wr wb
>> Kid
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> 2017-12-05 6:42 GMT+07:00 nangagus nangagus@gmail.com
>> <mailto:nangagus@gmail.com> [belajar-excel]
>> <belajar-excel@yahoogroups.com
>> <mailto:belajar-excel@yahoogroups.com>>:
>>
>> Asalamualaikum warahmatullah,
>>
>> Mas Kid,
>> Terima kasih atas penjelasannya.
>>
>> jika saya akan menggunakan CodeName Sheet, untuk menghapus
>> cell di lain workbook,
>> bagaimanakah cara penulisan cekripnya?
>>
>> saya coba gunakan:
>> Set wbBs = Workbooks("Book2.xlsm")
>> wbBs.Sheets1.Range("A2:A5").ClearContents
>>
>> menjadi error "Object doesn't support this property or method"
>>
>> namun apabila diubah menjadi:
>> Set wbBs = Workbooks("Book2.xlsm")
>> wbBs.Sheets(1).Range("A2:A5").ClearContents
>>
>> akan berjalan dengan baik. dapatkah code name sheet
>> digunakan? bagaimana batasan menggunakan codeNameSheet?
>>
>> Terima kasih,
>> wasalamualaikum warahmatullah wabarakatuh
>>
>> Agus
>>
>> On 03/12/2017 11:42, 'Mr. Kid' mr.nmkid@gmail.com
>> <mailto:mr.nmkid@gmail.com> [belajar-excel] wrote:
>>> hmmm....
>>>
>>> Pak HK dan BeExceller semua...
>>>
>>> ActiveWorkbook dan ThisWorkbook itu 2 (dua) object yang berbeda.
>>> ActiveWorkbook berisi workbook yang sedang aktif
>>> ThisWorkbook berisi workbook tempat si baris kode berada,
>>> alias object ThisWorkbook di dalam folder Excel Object di
>>> VBProject tempat si baris kode ditulis
>>>
>>> Contoh :
>>> Ada workbook 'Book1' hasil new workbook (belum di-save) tapi
>>> terbuka di Excel Application.
>>> Kemudian ada workbook 're-DATA.xlsx' (dari file
>>> re-Data.xlsx) yang juga sedang terbuka di Excel Application
>>> yang sama dengan Book1 tadi.
>>> Ada sebuah prosedur di workbook 're-DATA.xlsx'. Bunyi
>>> prosedur tersebut beserta tampilan ketika si prosedur
>>> dijalankan adalah sebagai berikut :
>>>
>>> ​Ingat ya...
>>> 1. prosedur itu ada di re-DATA.xlsx, lalu dijalankan
>>> 2. baris kode Workbooks("Book1").Activate akan membuat
>>> workbook Book1 menjadi aktif. Jadi, ActiveWorkbook berisi
>>> Book1, walaupun prosedur yang kerja ada di workbook re-DATA.xlsx
>>> 3. MsgBox yang muncul menjelaskan semuanya...
>>>
>>> Jadi, TIDAK SELALU ThisWorkbook adalah ActiveWorkbook,
>>> karena ActiveWorkbook dan ThisWorkbook adalah 2 (dua) object
>>> yang sejatinya berbeda
>>> walau terkadang mereka merujuk (MERUJUK bukan PERWUJUDAN) ke
>>> object workbook yang sama dan sedang aktif.
>>> Contoh prosedur di atas adalah bukti bahwa workbook yang
>>> aktif (ActiveWorkbook) tidak selalu merujuk ke workbook yang
>>> sama dengan ThisWorkbook.
>>>
>>> Regards,
>>> Kid
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Sun, Dec 3, 2017 at 9:25 AM, hendrik karnadi
>>> hendrikkarnadi@yahoo.com <mailto:hendrikkarnadi@yahoo.com>
>>> [belajar-excel] <belajar-excel@yahoogroups.com
>>> <mailto:belajar-excel@yahoogroups.com>> wrote:
>>>
>>> Sebelum Mr. Kid turun gunung, saya coba menjawab dari
>>> uraian mas Nang.
>>>
>>>
>>> Kesalahannya kayaknya disini
>>> set wb = ThisWorkbook
>>> Sel aktif kan masih ada di Workbook ThisWorkbook.
>>>
>>> Jadi ga mungkin wb dipakai untuk menunjuk ke workbook lain.
>>>
>>> Salam,
>>> HK
>>>
>>>
>>> Sent from Yahoo Mail on Android
>>> <https://overview.mail.yahoo.com/mobile/?.src=Android>
>>>
>>> On Sun, Dec 3, 2017 at 7:49, nangagus
>>> nangagus@gmail.com <mailto:nangagus@gmail.com>
>>> [belajar-excel]
>>> <belajar-excel@yahoogroups.com
>>> <mailto:belajar-excel@yahoogroups.com>> wrote:
>>>
>>> Asalamualaikum warahmatullah.
>>>
>>> 1. Saya membuat cekrip sederhana untuk menghapus cell.
>>> sheet1.Range("A1:A3).ClearContents
>>>
>>> cekrip tersebut dapat berjalan dengan baik.
>>>
>>> namun setelah saya tambahkan:
>>> set wb = ThisWorkbook
>>> wb.sheet1.Range("A1:A3).ClearContents
>>>
>>> terdapat eror, dimanakah kesalahannya? karena cekrip
>>> akan digunakan
>>> untuk menghapus cell di workbook lain.
>>>
>>> 2. Masih dalam cekrip yangsama:
>>> Workbooks("book1.xlsx").Sheets("Sheet1&quot;).Range("A1:A3").ClearContents
>>>
>>> dapat berjalan dengan baik pada office 2010 namun
>>> tidak dapat dilakukan
>>> di office 2013, bagaimana cara perbaikannya?
>>>
>>> Terima kasih
>>>
>>> Wasalamualaikum warahmatullah
>>>
>>> KenangAgus
>>>
>>>
>>
>>
>
>
>

Tue Dec 5, 2017 10:05 pm (PST) . Posted by:

y.roni35

Dear Rekan2,


Mungkin ada solusi untuk minimize dan maximize user form untuk Office 2010 dengan syestem 64 bit.
Kode yang saya gunakan berikut namun tidak berfungsi. Adakah scrip yang lain?


Public Const WS_MINIMIZEBOX = &H10000
Public Const WS_MAXIMIZEBOX = &H20000
Public Const GWL_STYLE = (-16)
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA&quot; _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Public Sub AddMinMaxButton(ByVal FormCaption As String, _
ByVal MinButton As Boolean, ByVal MaxButton As Boolean)
Dim hWnd As Long
Dim lngStyle As Long
hWnd = FindWindow(vbNullString, FormCaption)
lngStyle = GetWindowLong(hWnd, GWL_STYLE)
If MaxButton Then
lngStyle = lngStyle Or WS_MAXIMIZEBOX
End If
If MinButton Then
lngStyle = lngStyle Or WS_MINIMIZEBOX
End If
SetWindowLong hWnd, GWL_STYLE, lngStyle
DrawMenuBar hWnd

End Sub




Tue Dec 5, 2017 10:14 pm (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Hai Roni,

Windows API di 64 bit office membutuhkan deklarasi PtrSafe dan penyesuaian
type data disetiap Win32API function yang digunakan.
Tentang 64 bit VBA, sila lihat disini
<https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/64-bit-visual-basic-for-applications-overview>
.

Regards,
Kid

On Wed, Dec 6, 2017 at 12:45 PM, y.roni35@yahoo.com [belajar-excel] <
belajar-excel@yahoogroups.com> wrote:

>
>
> Dear Rekan2,
>
>
> Mungkin ada solusi untuk minimize dan maximize user form untuk Office 2010
> dengan syestem 64 bit.
>
> Kode yang saya gunakan berikut namun tidak berfungsi. Adakah scrip yang
> lain?
>
>
> Public Const WS_MINIMIZEBOX = &H10000
>
> Public Const WS_MAXIMIZEBOX = &H20000
>
> Public Const GWL_STYLE = (-16)
>
> Public Declare Function FindWindow Lib "user32" Alias "FindWindowA&quot; _
>
> (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
>
> Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
>
> (ByVal hWnd As Long, ByVal nIndex As Long) As Long
>
> Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
>
> (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
>
> Public Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As
> Long
>
> Public Sub AddMinMaxButton(ByVal FormCaption As String, _
>
> ByVal MinButton As Boolean, ByVal MaxButton As Boolean)
>
> Dim hWnd As Long
>
> Dim lngStyle As Long
>
> hWnd = FindWindow(vbNullString, FormCaption)
>
> lngStyle = GetWindowLong(hWnd, GWL_STYLE)
>
> If MaxButton Then
>
> lngStyle = lngStyle Or WS_MAXIMIZEBOX
>
> End If
>
> If MinButton Then
>
> lngStyle = lngStyle Or WS_MINIMIZEBOX
>
> End If
>
> SetWindowLong hWnd, GWL_STYLE, lngStyle
>
> DrawMenuBar hWnd
>
> End Sub
>
>
>
>

Tue Dec 5, 2017 11:12 pm (PST) . Posted by:

y.roni35

Terimakasih pecerahannya mr KID saya sudah coba hanya menambhkan PtrSafe. Have A Nice Day

Wed Dec 6, 2017 1:33 am (PST) . Posted by:

"Stephen Saputro"

Pak Kid,

Terima kasih banyak untuk bantuannya, ternayata lebih mudah, hehehehe. O ia
Pak, kalau merubah nama kolom "row labels " gimana caranya ya ? seharusnya
namanya adalah Invoice No dan juga apakah bisa kita menghilangkan tanda "-"
atau expand di setiap row nya ? sangat mengganggu soalnya dan juga tidak di
perlukan

Salam
S

2017-12-05 1:51 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
belajar-excel@yahoogroups.com>:

>
>
> Hai Stephen,
>
> Tentang :
> 1. Jadi Pivotnya kita buat manual dulu, terus tinggal di buat VBA untuk
> refresh data pivot, sehingga setiap ada inputan data terbaru, kita tinggal
> klik refresh dan data tersebut akan terefleksi dari Pivot yang sudah di
> buat ? Begitu ya Pak ?
> Kalau memang betul, bagaimana caranya Pak agar pivot tersebut dapat
> mengambil setiap data baru yang di input ? mohon bimbingannya
>
> > Betul begitu.
> > agar pivot tersebut dapat mengambil setiap data baru yang di input ?
> Tentu saja dengan membuat si pivot table merujuk ke salah satu dari 2
> hal berikut :
> a. sebuah nama range yang menghasilkan range dinamis
> atau
> b. excel table object (lihat ribbon HOME -> grup menu Styles ->
> Format as Table)
>
> 2. kalau pemahaman saya salah, mohon bantuannya Pak Kid untuk lebih
> menyederhanakan lagi ?hehehe
>
> > Tidak ada yang perlu disederhanakan kok
> > Yang diperlukan berikutnya adalah membuat pivot table merujuk ke sebuah
> nama range atau sebuah excel pivot table
>
> Regards,
> Kid
>
>
>
>
>
>
>
> 2017-12-04 20:16 GMT+07:00 Stephen Saputro stephensaputro@gmail.com
> [belajar-excel] <belajar-excel@yahoogroups.com>:
>
>>
>>
>> Pak Kid,
>>
>> Terima kasih untuk pencerahannya. Sudah saya coba renungkan saran Bapak
>> di bawah ini, namun maklum masih dangkal ilmu saya Pak, hehehe caplok sana
>> caplok sini soalnya. Yang saya tangkap dari kata2 Pak Kid kira2 seperti ini
>> ya :
>>
>> 1. Jadi Pivotnya kita buat manual dulu, terus tinggal di buat VBA untuk
>> refresh data pivot, sehingga setiap ada inputan data terbaru, kita tinggal
>> klik refresh dan data tersebut akan terefleksi dari Pivot yang sudah di
>> buat ? Begitu ya Pak ?
>> Kalau memang betul, bagaimana caranya Pak agar pivot tersebut dapat
>> mengambil setiap data baru yang di input ? mohon bimbingannya
>>
>> 2. kalau pemahaman saya salah, mohon bantuannya Pak Kid untuk lebih
>> menyederhanakan lagi ?hehehe
>>
>>
>> 2017-12-04 15:04 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
>> belajar-excel@yahoogroups.com>:
>>
>>>
>>>
>>> Hai Stephen...
>>>
>>> Bagaimana kalau mengoptimumkan pivot table saja...
>>> 1. Buat sheet baru bernama Balance
>>> > Buat manual (gak usah pakai VBA dulu) pivot table untuk layout
>>> output laporan Balance di sheet balance, lengkap dengan pernak perniknya.
>>> > bila perlu, set pivot table supaya tidak usah menyimpan data dalam
>>> pivot cache nya
>>> > kalau gak suka ada teks berbunyi (blank), edit saja teks berbunyi
>>> blank itu (langsung di-cells nya) agar berisi spasi misalnya.
>>> > kalau gak suka bunyi sum of blabla, ganti saja bunyinya sesuai
>>> keinginan Anda dengan ditambahkan spasi di akhirnya (JANGAN LUPA, tambahkan
>>> 1 spasi di akhirnya)
>>> > save workbook
>>> 2. Buat sheet baru lagi, kali ini diberi nama Pembayaran
>>> > copy pivot table yang ada di sheet Balance, dan paste ke sheet
>>> Pembayaran
>>> > atur pivot table hasil paste tadi agar sesuai layout output
>>> laporan pembayaran, lengkap dengan segala pernak-perniknya.
>>> > save workbook
>>> 3. Sekarang baru buat VBA-nya, tapi gak perlu VBA yang sophisticated
>>> untuk membuat pivot table dari nol kaya begitu.
>>> > setiap event si tombol, isinya adalah proses refresh all, lalu
>>> unhide sheet yang sesuai, hide sheet yang gak perlu ditampilkan.
>>> * sudah tahukan kalau status visible sebuah sheet itu ada 3
>>> (tiga), yaitu visible, hidden, dan very hidden. Kalau hidden, user bakalan
>>> bisa un-hide dari tab sheet.
>>> > bila perlu, buat tombol di setiap sheet pivot table untuk kembali
>>> ke sheet utama (main menu).
>>>
>>> Dengan begitu, kalau ada output laporan lainnya, seperti pemasukan,
>>> cicilan, bla, blu, bli, dsb, maka cukup buat sheet baru, copy pivot table
>>> yang ada di sheet lain, atur layout, siapkan tombol untuk hide/unhide sheet.
>>>
>>> Cara di atas itu adalah contoh otomasi, bukan bikin program.
>>> VBA itu ditujukan untuk menjadi alat otomasi.
>>> Programming untuk automation itu bisa lebih sederhana.
>>> Kalau proses otomasi disusun dengan cara bikin program, maka jadinya
>>> ruwet buntet ketemunya hanya kesimpulan "Excel itu gak bisa begini begitu"
>>> padahal yang gak bisa bukan Excel-nya...
>>> wkwkwkwk
>>>
>>> Regards,
>>> Kid
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> 2017-12-04 13:12 GMT+07:00 Stephen Saputro stephensaputro@gmail.com
>>> [belajar-excel] <belajar-excel@yahoogroups.com>:
>>>
>>>>
>>>>
>>>> Selamat siang semuanya,
>>>>
>>>> Mohon kiranya dapat di bantu kasus saya. Pada file saya ini, ada 2
>>>> Report yang saya akan buat. Yaitu :
>>>>
>>>> 1. Tombol Balance
>>>> a. Bagaimana caranya agar pada waktu report di tarik, Tulisan
>>>> "(blank)" pada pivot yang di buat agar tidak muncul lagi.
>>>> b. Bisakah kalimat " sum of " pada kolom Principal USD - Kolom Gross
>>>> USD tidak muncul pada saat Report di tarik ?
>>>> c. Bagaimana caranya agar pada saat report di tarik, Pivot sudah
>>>> otomatis jadi berwarna ? saya sudah coba menggunakan perintah "
>>>> objTable.TableStyle = "PivotStyleMedium10" ", tapi tidak berhasil
>>>>
>>>> 2. Tombol Pembayaran
>>>> a. Bagaimana caranya, pada saat report di tarik, di kolom filter (
>>>> Penagihan/Pembayaran ) pada pivot, defaultnya adalah "pembayaran&quot;, Karena
>>>> selama ini setelah report pembayaran di tarik, saya harus memilih
>>>> "pembayaran&quot; secara manual. Kadangkala karena harus buru2, saya lupa untuk
>>>> memilih "pembayaran&quot; sehingga data yang di kasih salah
>>>> b. Apakah bisa pada saat report di tarik, maka reportnya langsung
>>>> otomatis muncul di layar kita ?
>>>>
>>>>
>>>> Mohon maaf karena langsung banyak pertanyaan yang di kasih. Terima
>>>> kasih banyak untuk bantuannya.
>>>>
>>>>
>>>
>>
>
>

Wed Dec 6, 2017 2:22 am (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Hai S,

Tentang :

> kalau merubah nama kolom "row labels " gimana caranya ya ? seharusnya
> namanya adalah Invoice No
>
> Bukankah sudah dijelaskan di email lalu ?

> Bagaimana kalau mengoptimumkan pivot table saja...
> 1. Buat sheet baru bernama Balance
> > Buat manual (gak usah pakai VBA dulu) pivot table untuk layout
> output laporan Balance di sheet balance, lengkap dengan pernak perniknya.
> > bila perlu, set pivot table supaya tidak usah menyimpan data dalam
> pivot cache nya
> > kalau gak suka ada teks berbunyi (blank), edit saja teks berbunyi
> blank itu (langsung di-cells nya) agar berisi spasi misalnya.
> * > kalau gak suka bunyi sum of blabla, ganti saja bunyinya sesuai
> keinginan Anda dengan ditambahkan spasi di akhirnya (JANGAN LUPA, tambahkan
> 1 spasi di akhirnya)*
> > save workbook
>
> Berlaku untuk semua nama field

Tentang :

> apakah bisa kita menghilangkan tanda "-" atau expand di setiap row nya ?
>
> klik sebuah cells dalam pivot table -> PivotTable Tools menu -> ribbon
Options (xl2007) atau Analyze (xl2010 ke atas) -> grup menu Show/Hide ->
atur On/Off sesuai kebutuhan

Regards,
Kid

2017-12-06 16:10 GMT+07:00 Stephen Saputro stephensaputro@gmail.com
[belajar-excel] <belajar-excel@yahoogroups.com>:

>
>
> Pak Kid,
>
> Terima kasih banyak untuk bantuannya, ternayata lebih mudah, hehehehe. O
> ia Pak, kalau merubah nama kolom "row labels " gimana caranya ya ?
> seharusnya namanya adalah Invoice No dan juga apakah bisa kita
> menghilangkan tanda "-" atau expand di setiap row nya ? sangat mengganggu
> soalnya dan juga tidak di perlukan
>
> Salam
> S
>
> 2017-12-05 1:51 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>>
>>
>> Hai Stephen,
>>
>> Tentang :
>> 1. Jadi Pivotnya kita buat manual dulu, terus tinggal di buat VBA untuk
>> refresh data pivot, sehingga setiap ada inputan data terbaru, kita tinggal
>> klik refresh dan data tersebut akan terefleksi dari Pivot yang sudah di
>> buat ? Begitu ya Pak ?
>> Kalau memang betul, bagaimana caranya Pak agar pivot tersebut dapat
>> mengambil setiap data baru yang di input ? mohon bimbingannya
>>
>> > Betul begitu.
>> > agar pivot tersebut dapat mengambil setiap data baru yang di input ?
>> Tentu saja dengan membuat si pivot table merujuk ke salah satu dari 2
>> hal berikut :
>> a. sebuah nama range yang menghasilkan range dinamis
>> atau
>> b. excel table object (lihat ribbon HOME -> grup menu Styles ->
>> Format as Table)
>>
>> 2. kalau pemahaman saya salah, mohon bantuannya Pak Kid untuk lebih
>> menyederhanakan lagi ?hehehe
>>
>> > Tidak ada yang perlu disederhanakan kok
>> > Yang diperlukan berikutnya adalah membuat pivot table merujuk ke sebuah
>> nama range atau sebuah excel pivot table
>>
>> Regards,
>> Kid
>>
>>
>>
>>
>>
>>
>>
>> 2017-12-04 20:16 GMT+07:00 Stephen Saputro stephensaputro@gmail.com
>> [belajar-excel] <belajar-excel@yahoogroups.com>:
>>
>>>
>>>
>>> Pak Kid,
>>>
>>> Terima kasih untuk pencerahannya. Sudah saya coba renungkan saran Bapak
>>> di bawah ini, namun maklum masih dangkal ilmu saya Pak, hehehe caplok sana
>>> caplok sini soalnya. Yang saya tangkap dari kata2 Pak Kid kira2 seperti ini
>>> ya :
>>>
>>> 1. Jadi Pivotnya kita buat manual dulu, terus tinggal di buat VBA untuk
>>> refresh data pivot, sehingga setiap ada inputan data terbaru, kita tinggal
>>> klik refresh dan data tersebut akan terefleksi dari Pivot yang sudah di
>>> buat ? Begitu ya Pak ?
>>> Kalau memang betul, bagaimana caranya Pak agar pivot tersebut dapat
>>> mengambil setiap data baru yang di input ? mohon bimbingannya
>>>
>>> 2. kalau pemahaman saya salah, mohon bantuannya Pak Kid untuk lebih
>>> menyederhanakan lagi ?hehehe
>>>
>>>
>>> 2017-12-04 15:04 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]
>>> <belajar-excel@yahoogroups.com>:
>>>
>>>>
>>>>
>>>> Hai Stephen...
>>>>
>>>> Bagaimana kalau mengoptimumkan pivot table saja...
>>>> 1. Buat sheet baru bernama Balance
>>>> > Buat manual (gak usah pakai VBA dulu) pivot table untuk layout
>>>> output laporan Balance di sheet balance, lengkap dengan pernak perniknya.
>>>> > bila perlu, set pivot table supaya tidak usah menyimpan data
>>>> dalam pivot cache nya
>>>> > kalau gak suka ada teks berbunyi (blank), edit saja teks berbunyi
>>>> blank itu (langsung di-cells nya) agar berisi spasi misalnya.
>>>> > kalau gak suka bunyi sum of blabla, ganti saja bunyinya sesuai
>>>> keinginan Anda dengan ditambahkan spasi di akhirnya (JANGAN LUPA, tambahkan
>>>> 1 spasi di akhirnya)
>>>> > save workbook
>>>> 2. Buat sheet baru lagi, kali ini diberi nama Pembayaran
>>>> > copy pivot table yang ada di sheet Balance, dan paste ke sheet
>>>> Pembayaran
>>>> > atur pivot table hasil paste tadi agar sesuai layout output
>>>> laporan pembayaran, lengkap dengan segala pernak-perniknya.
>>>> > save workbook
>>>> 3. Sekarang baru buat VBA-nya, tapi gak perlu VBA yang sophisticated
>>>> untuk membuat pivot table dari nol kaya begitu.
>>>> > setiap event si tombol, isinya adalah proses refresh all, lalu
>>>> unhide sheet yang sesuai, hide sheet yang gak perlu ditampilkan.
>>>> * sudah tahukan kalau status visible sebuah sheet itu ada 3
>>>> (tiga), yaitu visible, hidden, dan very hidden. Kalau hidden, user bakalan
>>>> bisa un-hide dari tab sheet.
>>>> > bila perlu, buat tombol di setiap sheet pivot table untuk kembali
>>>> ke sheet utama (main menu).
>>>>
>>>> Dengan begitu, kalau ada output laporan lainnya, seperti pemasukan,
>>>> cicilan, bla, blu, bli, dsb, maka cukup buat sheet baru, copy pivot table
>>>> yang ada di sheet lain, atur layout, siapkan tombol untuk hide/unhide sheet.
>>>>
>>>> Cara di atas itu adalah contoh otomasi, bukan bikin program.
>>>> VBA itu ditujukan untuk menjadi alat otomasi.
>>>> Programming untuk automation itu bisa lebih sederhana.
>>>> Kalau proses otomasi disusun dengan cara bikin program, maka jadinya
>>>> ruwet buntet ketemunya hanya kesimpulan "Excel itu gak bisa begini begitu"
>>>> padahal yang gak bisa bukan Excel-nya...
>>>> wkwkwkwk
>>>>
>>>> Regards,
>>>> Kid
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> 2017-12-04 13:12 GMT+07:00 Stephen Saputro stephensaputro@gmail.com
>>>> [belajar-excel] <belajar-excel@yahoogroups.com>:
>>>>
>>>>>
>>>>>
>>>>> Selamat siang semuanya,
>>>>>
>>>>> Mohon kiranya dapat di bantu kasus saya. Pada file saya ini, ada 2
>>>>> Report yang saya akan buat. Yaitu :
>>>>>
>>>>> 1. Tombol Balance
>>>>> a. Bagaimana caranya agar pada waktu report di tarik, Tulisan
>>>>> "(blank)" pada pivot yang di buat agar tidak muncul lagi.
>>>>> b. Bisakah kalimat " sum of " pada kolom Principal USD - Kolom
>>>>> Gross USD tidak muncul pada saat Report di tarik ?
>>>>> c. Bagaimana caranya agar pada saat report di tarik, Pivot sudah
>>>>> otomatis jadi berwarna ? saya sudah coba menggunakan perintah "
>>>>> objTable.TableStyle = "PivotStyleMedium10" ", tapi tidak berhasil
>>>>>
>>>>> 2. Tombol Pembayaran
>>>>> a. Bagaimana caranya, pada saat report di tarik, di kolom filter (
>>>>> Penagihan/Pembayaran ) pada pivot, defaultnya adalah "pembayaran&quot;, Karena
>>>>> selama ini setelah report pembayaran di tarik, saya harus memilih
>>>>> "pembayaran&quot; secara manual. Kadangkala karena harus buru2, saya lupa untuk
>>>>> memilih "pembayaran&quot; sehingga data yang di kasih salah
>>>>> b. Apakah bisa pada saat report di tarik, maka reportnya langsung
>>>>> otomatis muncul di layar kita ?
>>>>>
>>>>>
>>>>> Mohon maaf karena langsung banyak pertanyaan yang di kasih. Terima
>>>>> kasih banyak untuk bantuannya.
>>>>>
>>>>>
>>>>
>>>
>>
>
>

Wed Dec 6, 2017 2:22 am (PST) . Posted by:

y.roni35

Dear Rekan-Rekan,


Mohon Bantuannya, saya mau print untuk userform dengan kertas landscape. saya pake office 2010 (64 bit). Saya peke code ini tidak bisa, mohon di koreksi.
Option Explicit




Private Declare PtrSafe Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Const VK_SNAPSHOT As Long = &H2C '44
Private Const VK_LMENU As Long = &HA4 '164
Private Const KEYEVENTF_KEYUP As Long = 2
Private Const KEYEVENTF_EXTENDEDKEY As Long = 1


Private Sub CommandButton1_Click()


End Sub
Dim sngScrollTop As Single
Dim sngScrollHt As Single
Dim sngLt As Single
Dim sngTp As Single
Dim sngHt As Single
With Me
sngScrollTop = .ScrollTop
sngScrollHt = .ScrollHeight
sngLt = .Left
sngTp = .Top
sngHt = .Height
.Left = 0
.Top = 0
.Height = .ScrollHeight
.ScrollTop = 0
DoEvents
keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0&
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0&
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0&
keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
DoEvents
Selection.Paste
sngScrollTop = .ScrollTop
sngScrollHt = .ScrollHeight
.Height = sngHt
.ScrollHeight = ScrollHeight
.ScrollTop = sngScrollTop
.Left = sngLt
.Top = sngTp


End With


Wed Dec 6, 2017 2:23 pm (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Hai Roni,

Kenapa yang di-print adalah userform ? Bukankah bisa disusun dengan
worksheet agar lebih luwes.
Jadi, hasil pengolahan dengan userform dibuatkan sebuah worksheet untuk
print berisi layout seperti userform.
Karena kalau print userform dalam orientasi kertas landscape, maka si
userform di print screen (pakai ALT supaya hanya userform yang ter-capture)
lalu di hasil print screen di paste ke sebuah worksheet kosong yang baru,
kemudian worksheet berisi picture shape tadi diatur page setupnya, dan bila
perlu diatur ukuran shape-nya
barulah di sheet tersebut di printout, diakhir dengan delete sheet tersebut.

Urutan proses dalam prosedur juga mengikuti alur di atas.

Untuk BeExceller semua,
proses penekanan tombol keyboard lebih luwes dilakukan dengan windows api
keybd_event,
terutama ketika membutuhkan tombol PrtScr yang tidak bisa diatur dengan
mudah menggunakan Application.SendKeys

Contohnya begini :
'deklarasi variabel kerja
Dim shtTmp As Worksheet, shtApp As Worksheet, shpFrm As Shape
Dim dblScT As Double, dblScL As Double

'init semua bahan
Application.DisplayAlerts = False
Set shtApp = ActiveSheet
Set shtTmp = ThisWorkbook.Sheets.Add 'tambah sheet baru
dblScT = Me.ScrollTop
dblScL = Me.ScrollLeft

'atur tampilan yang akan di ALT+PRTSCR
Me.ScrollTop = 0
Me.ScrollLeft = 0
Application.CutCopyMode = False 'clear clipboard dari range yang
ter-copy sebelumnya

'proses ALT+PRTSCR (tersimpan di clipboard)
keybd_event 164, 0, 1, 0 'pencet ALT (klik tombol) jangan dilepaskan
keybd_event 44, 0, 1, 0 'pencet PRTSCR (klik tombol) jangan
dilepaskan
keybd_event 44, 0, 3, 0 'lepas PRTSCR yang tadi dipencet (2 :
extended + 1 : klik tombol)
keybd_event 164, 0, 3, 0 'lepas ALT yang tadi dipencet (2 : extended
+ 1 : klik tombol)
DoEvents 'lakukan seluruh events dalam antrian, dan
tangkap event yang baru
Application.Wait Now + TimeValue("00:00:01") 'beri waktu 1 detik agar
perintah keyboard di proses, atur waktunya

'paste hasil ALT+PRTSCR ke worksheet dan print
shtTmp.Paste 'paste isi clipboard ke worksheet
(biasanya ke activecell di sheet tersebut, tapi kasus ini tidak peduli
lokasinya)
Set shpFrm = shtTmp.Shapes(1) 'simpan shapes ke-1 yang ada di sheet
tersebut ke variabel shape
'--> atur pagesetup worksheet disini <--'
'mulai dari ubah kertas, margin, orientasi, dan sebagainya (lihat
dialog page setup)
'lalu attur ukuran shape agar mengikuti perbandingan kertas
'akhiri dengan printout/printpreview sheet
'---------------------------------------'

'kembalikan area kerja ke keadaan semula
Me.ScrollTop = dblScT
Me.ScrollLeft = dblScL
shtTmp.Delete
shtApp.Activate
Application.DisplayAlerts = False

Silakan diatur

Regards,
Kid

On Wed, Dec 6, 2017 at 4:38 PM, y.roni35@yahoo.com [belajar-excel] <
belajar-excel@yahoogroups.com> wrote:

>
>
> Dear Rekan-Rekan,
>
>
> Mohon Bantuannya, saya mau print untuk userform dengan kertas landscape.
> saya pake office 2010 (64 bit). Saya peke code ini tidak bisa, mohon di
> koreksi.
>
> Option Explicit
>
>
>
> Private Declare PtrSafe Sub keybd_event Lib "user32" ( _
>
> ByVal bVk As Byte, ByVal bScan As
> Byte, _
>
> ByVal dwFlags As Long, ByVal
> dwExtraInfo As Long)
>
>
>
> Private Const VK_SNAPSHOT As Long = &H2C '44
>
> Private Const VK_LMENU As Long = &HA4 '164
>
> Private Const KEYEVENTF_KEYUP As Long = 2
>
> Private Const KEYEVENTF_EXTENDEDKEY As Long = 1
>
>
> Private Sub CommandButton1_Click()
>
>
> End Sub
>
> Dim sngScrollTop As Single
>
> Dim sngScrollHt As Single
>
> Dim sngLt As Single
>
> Dim sngTp As Single
>
> Dim sngHt As Single
>
> With Me
>
> sngScrollTop = .ScrollTop
>
> sngScrollHt = .ScrollHeight
>
> sngLt = .Left
>
> sngTp = .Top
>
> sngHt = .Height
>
> .Left = 0
>
> .Top = 0
>
> .Height = .ScrollHeight
>
> .ScrollTop = 0
>
> DoEvents
>
> keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0&
>
> keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0&
>
> keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY Or
> KEYEVENTF_KEYUP, 0&
>
> keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY Or
> KEYEVENTF_KEYUP, 0
>
> DoEvents
>
> Selection.Paste
>
> sngScrollTop = .ScrollTop
>
> sngScrollHt = .ScrollHeight
>
> .Height = sngHt
>
> .ScrollHeight = ScrollHeight
>
> .ScrollTop = sngScrollTop
>
> .Left = sngLt
>
> .Top = sngTp
>
> End With
>
>
>
>

Wed Dec 6, 2017 6:07 am (PST) . Posted by:

"Pak Cik Lukman"

Assalamulaikum dan selamat malam para master excel

saya ingin menshort data pada koloum tertentu berdasarkan angka tertinggi,
namun rekap saya rubah.
contoh problem saya pada file berikut, kiranya para master bisa membantu,
terima kasih sebelumnya

wasalam,

Wed Dec 6, 2017 2:25 pm (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Wa'alaikumussalam wr. wb.,

e...e... aha... eh kayanya bukan gitu maksudnya... oh mungkin begini...
hmmm... ragu juga...

:(
Maaf, bolehkah dijelaskan dengan lebih detil ?
Atau mungkin ada BeExceller yang bersedia menjelaskan dengan lebih detil ?

Wassalamu'alaikum wr wb
Kid

2017-12-06 20:08 GMT+07:00 Pak Cik Lukman pakciklukman@gmail.com
[belajar-excel] <belajar-excel@yahoogroups.com>:

>
>
> Assalamulaikum dan selamat malam para master excel
>
> saya ingin menshort data pada koloum tertentu berdasarkan angka tertinggi,
> namun rekap saya rubah.
> contoh problem saya pada file berikut, kiranya para master bisa membantu,
> terima kasih sebelumnya
>
> wasalam,
>
>
>
============================================================
Pojok Lowongan Kerja yang disediakan milis :
http://milis-belajar-excel.1048464.n5.nabble.com/Pojok-Lowongan-Kerja-f5725753.html
*** Posting lowongan kerja : ke link tersebut dan klik New Topic
============================================================
bergabung ke milis (subscribe), kirim mail kosong ke: belajar-excel-subscribe@yahoogroups.com
posting ke milis, kirimkan ke: belajar-excel@yahoogroups.com
berkunjung ke web milis : http://tech.groups.yahoo.com/group/belajar-excel/messages
melihat file archive / mendownload lampiran : http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di : http://milis-belajar-excel.1048464.n5.nabble.com/
menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com
keluar dari membership milis (UnSubscribe), kirim mail kosong ke : belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------

Tidak ada komentar:

Posting Komentar