Minggu, 03 Desember 2017

[belajar-excel] Digest Number 4367

4 Messages

Digest #4367
1a
Re: Kesalahan Cekrip by "Mr. Kid" nmkid.family@ymail.com
1b
Re: Kesalahan Cekrip by "Mr. Kid" nmkid.family@ymail.com
2b
Re: Mengambil nilai dari pola tertentu by "Mr. Kid" nmkid.family@ymail.com

Messages

Sat Dec 2, 2017 8:12 pm (PST) . Posted by:

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

Wa'alaikumussalam wr wb

Hai Nang,

*1. sheet1.Range("A1:A3).*
*ClearContents*
> Sheet1 di baris kode tersebut merujuk ke worksheet dengan codename
Sheet1. Nama worksheet-nya bisa apa saja.
> Object Thisworkbook maupun object collection Workbooks tidak bisa
mengakses code name sebuah worksheet.
> Coba dilihat di VBE Project Explorer. Folder Excel Objects berisi objects
sheet dan thisworkbook pada level yang sama, yang semuanya ber-scope
private... Bingung to...
> Sederhananya gini... karena ThisWorkbook dan Sheet1 itu satu level object
dalam folder Excel Objects, maka thisworkbook tidak punya anak bernama
Sheet1.
Jadi, wb.Sheet1.Range("A1:A3").ClearContents dengan wb merujuk ke
ThisWorksbook, artinya : wb (dalam hal ini Thisworkbook) memanggil anaknya
si sheet1. Padahal ThisWorkbook tidak punya anak.
Errorlah jadinya.
> Kalau mau mengakses worksheet dengan code name Sheet1, maka gunakan index
worksheet-nya atau nama caption-nya (nama sheet yang tampak di tab sheet).
> Jadi, kalau di Project Explorer ada Sheet1 (Sheetnya si Kid), berarti
sheet1 adalah code name, dan 'Sheetnya si Kid' adalah nama panggilan alias
caption alias nama sheet yang tampak di tab sheet.
Maka, pakai 'Sheetnya si Kid' untuk mengakses worksheet ber-codename
Sheet1 melalui ThisWorkbook
ThisWorkbook.Sheets("sheetnya si kid").range("a1:a3").clearcontents
atau
dim wb as workbook
set wb=thisworkbook
wb.sheets("sheetnya si kid").range("a1:a3").clearcontents

> Penggunaan code name hanya untuk baris kode di sebuah file Excel. Tidak
bisa digunakan untuk memanggil dari file Excel lain.
> Jika memperhatikan intellimouse yang muncul saat mengetik baris kode,
dapat diketahui bahwa tidak ada properti atau methods yang berupa code name
sebuah sheet

Coba perhatikan gambar di atas. Pada VBAProject (re-DATA.xlsx) [workbook
bernama re-DATA.xlsx yang telah dibuka Excel, dari file Excel bernama
re-DATA.xlsx]
pada object sheet dengan code name sht_DT1 (yang di tab sheet tampak
bernama Data), dibuat sebuah prosedur.
Dalam prosedur tersebut, ketika mengetik baris *wb.* (sampai karakter
titik) muncul daftar properties dan methods yang dimiliki oleh si variabel
object wb yang bertipe Workbook dan berisi object ThisWorkbook.
Dalam daftar properties dan methods tersebut TIDAK ada object bernama
sht_DT1

*2. Workbooks("book1.xlsx").**Sheets("Sheet1").Range("A1:A3"*
*).ClearContents*> Workbooks("book1.xlsx") artinya ada file Excel (di
windows explorer bernama book1.xlsx) yang telah dibuka oleh Excel.
> Workbooks("book1") artinya ada workbook di memory tapi belum jadi file.
> Masalahnya, kebiasaan jaman now, di Windows Explorer tidak ditampilkan,
sehingga kalau ada file Excel bernama Book1.xlsx dan workbook Book1 di
memory tidak akan tampak bedanya. Tapi di VBE akan tampak bedanya, yaitu di
nama project di bagian Project Explorer.
Pakai contoh saja : (di Excel berapapun akan sama tindak tanduknya)



​Jika di workbook bernama 're-DATA.xlsx' Module1 ada prosedur berisi baris :
Workbooks("Book1").Sheets(1).Range("a1:a3").value="Kid"
maka yang diproses adalah workbook milik VBAProject(Book1), yaitu New
Workbook bernama 'Book1' yang belum di-save

Jika di workbook bernama 're-DATA.xlsx' Module1 ada prosedur berisi baris :
Workbooks("Book1.xlsx").Sheets(1).Range("a1:a3").value="Kid"
maka yang diproses adalah workbook milik VBAProject(Book1.xlsx), yaitu
Workbook bernama 'Book1' dari file Excel bernama Book1.xlsx

Jika windows explorer di-set agar menampilkan ekstensi file, akan lebih
tampak jelas



nah....
Simpulannya...

> 1. ada baiknya untuk memperhatikan dengan seksama, yang mana sih object
> yang akan diakses
> 2. properti atau method (prosedur) apa saja yang dimiliki oleh si object
> yang sedang digunakan
>

Tetap semangat belajar ya...

Wassalamu'alaikum wr wb
Kid

2017-12-03 7:48 GMT+07:00 nangagus nangagus@gmail.com [belajar-excel] <
belajar-excel@yahoogroups.com>:

>
>
> 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
>
>
>

Sat Dec 2, 2017 8:42 pm (PST) . Posted by:

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

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
[belajar-excel] <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 [belajar-excel]
> <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
>
>
>

Sat Dec 2, 2017 8:43 pm (PST) . Posted by:

"Berni Karanza" karanza.berni

Hai Mr.Kid

Terima kasih lagi atas bantuannya, bisa saya contoh formulanya untuk
diaplikasikan ke data yg sebenarnya. Walaupun secara logic terus terang
masih gagal paham :D, kayaknya mesti banyak belajar lagi mengenai konsep
array, bisa dibantu kalo ada referensi yg bagus?, terima kasih.

Salam,
Berni K

Pada tanggal 2 Des 2017 6.31 PM, "'Mr. Kid' mr.nmkid@gmail.com
[belajar-excel]" <belajar-excel@yahoogroups.com> menulis:

>
>
> Hai Berni,
>
> File terlampir menggunakan array block 1 baris x 7 kolom untuk menghindari
> kalkulasi berulang agar Excel tidak dituduh lambat dalam bekerja pada data
> yang banyak
>
> Regards,
> Kid
>
>
> 2017-12-02 13:43 GMT+07:00 Berni Karanza karanza.berni@gmail.com
> [belajar-excel] <belajar-excel@yahoogroups.com>:
>
>>
>>
>> Dear rekan-rekan milis,
>>
>> Mohon bantuannya terhadap contoh kasus berikut, yang merupakan bentuk
>> simulasi dari trend pola kerja karyawan:
>>
>>
>> ​Maksud dari gambar tersebut di atas, adalah bagaimana cara mengambil
>> nilai yang ada di dalam cell secara spesifik pada tabel di bagian atas,
>> yaitu dengan mengambil angka terbesar sebelum cell yang berisi teks "CT" ,
>> hasilnya dipindahkan ke tabel bagian bawah. Penyelesaiannya bisa
>> menggunakan formula atau macro, dan berikut juga saya kirimkan lampiran
>> file yang dimaksud.
>>
>> Demikian ditunggu tanggapannya, dan terima kasih banyak atas bantuannya.
>>
>> Salam,
>>
>> Berni K
>>
>>
>>
>
>

Sat Dec 2, 2017 8:47 pm (PST) . Posted by:

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

Hai Berni,

Sila dipelajari, dipahami, dan dikembangkan.
Disini
<http://excel-mr-kid.blogspot.co.id/2011/03/array-formula-kenalan-yuuuk.html>
ada sedikit coretan tentang array formula, moga-moga cukup memadai untuk
menjadi awalan dalam memahami array formula.

Regards,
Kid

2017-12-03 11:42 GMT+07:00 Berni Karanza karanza.berni@gmail.com
[belajar-excel] <belajar-excel@yahoogroups.com>:

>
>
> Hai Mr.Kid
>
> Terima kasih lagi atas bantuannya, bisa saya contoh formulanya untuk
> diaplikasikan ke data yg sebenarnya. Walaupun secara logic terus terang
> masih gagal paham :D, kayaknya mesti banyak belajar lagi mengenai konsep
> array, bisa dibantu kalo ada referensi yg bagus?, terima kasih.
>
> Salam,
> Berni K
>
>
> Pada tanggal 2 Des 2017 6.31 PM, "'Mr. Kid' mr.nmkid@gmail.com
> [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:
>
>>
>>
>> Hai Berni,
>>
>> File terlampir menggunakan array block 1 baris x 7 kolom untuk
>> menghindari kalkulasi berulang agar Excel tidak dituduh lambat dalam
>> bekerja pada data yang banyak
>>
>> Regards,
>> Kid
>>
>>
>> 2017-12-02 13:43 GMT+07:00 Berni Karanza karanza.berni@gmail.com
>> [belajar-excel] <belajar-excel@yahoogroups.com>:
>>
>>>
>>>
>>> Dear rekan-rekan milis,
>>>
>>> Mohon bantuannya terhadap contoh kasus berikut, yang merupakan bentuk
>>> simulasi dari trend pola kerja karyawan:
>>>
>>>
>>> ​Maksud dari gambar tersebut di atas, adalah bagaimana cara mengambil
>>> nilai yang ada di dalam cell secara spesifik pada tabel di bagian atas,
>>> yaitu dengan mengambil angka terbesar sebelum cell yang berisi teks "CT" ,
>>> hasilnya dipindahkan ke tabel bagian bawah. Penyelesaiannya bisa
>>> menggunakan formula atau macro, dan berikut juga saya kirimkan lampiran
>>> file yang dimaksud.
>>>
>>> Demikian ditunggu tanggapannya, dan terima kasih banyak atas bantuannya.
>>>
>>> Salam,
>>>
>>> Berni K
>>>
>>>
>>>
>>
>
============================================================
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