Jumat, 07 April 2017

[belajar-excel] Digest Number 4152

5 Messages

Digest #4152

Messages

Fri Apr 7, 2017 12:21 am (PDT) . Posted by:

"Heru Safrudin" heru.safrudin

Yth. Mr. Kid. Yang baik hati,

Langsung dari aplikasinya ya:

Diatas adalah tampilan ketika tombol Upload dipilih :

· Kolom "L" akan terselect dan tidak bisa dilanjutkan jika ada cell yang masih belum diisi

· Kolom "A" dikondisikan kosong sebelum data/cell terisi semua

· Kalau cell terisi semua kolom "A" akan terisi nomor urut dokumen (lanjutan dari nomor sebelumnya di database), untuk cetak slip SPL

Dan berikut adalah kode untuk select cell yang kosong

Range("B2").Resize(Range("B2").CurrentRegion.Rows.Count - 1, Range("B2").CurrentRegion.Columns.Count - 1).SpecialCells(xlCellTypeBlanks).Select

Demikian Mr. Kid sebenarnya cukup sederhana dan udah solve, tapi malah dapet ilmu alternatif yang buaanyaa…

Makasih banget Mr. Kid

Boleh tahu gak, kalau mencoba 2 baris ini pada lembar kerja Anda, hasilnya apa saja :

1. baris berbunyi :

Range("A1").Resize(Range("A1").CurrentRegion.Rows.Count,Range("A1").CurrentRegion.Columns.Count).address

è Jawabannya Mr. Kid pasti udah tahu $A$1:$L$11

2. dan baris berbunyi :

Range("A1").CurrentRegion.address

è Jawabannya Mr. Kid pasti udah tahu $A$1:$L$11 (sorry copas aja soalnya jawabannya juga pasti udah tahu)

Wassalam..

Heru Safrudin

BISI

From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
Sent: 06 April 2017 10:28
To: BeExcel
Subject: Re: [belajar-excel] Menemukan cell yang kosong

hehehe...

gitu ya..

baiklah...

Boleh tahu gak, kalau mencoba 2 baris ini pada lembar kerja Anda, hasilnya apa saja :

1. baris berbunyi :

Range("A1").Resize(Range("A1").CurrentRegion.Rows.Count,Range("A1").CurrentRegion.Columns.Count).address

2. dan baris berbunyi :

Range("A1").CurrentRegion.address

Posting dimari hasilnya ya..

Terimakasih sebelumnya.

btw,

untuk obrolan pagi hari...

Beberapa kali tempo lalu-lalu banget (sampai lupa kapan), disarankan agar menyusun dataset menggunakan kaidah tabel database.

Tapi kan terkadang tidak seluruh proses akan memproses tabel data pokok. Seringnya, proses dilakukan terhadap dataset yang ditampilkan kepada user.

Untuk dataset yang bukan tabel data pokok, disarankan agar membatasi area dataset dengan suatu cells kosong. Contohnya adalah seperti digambar berikut ini :



> Fokus pada tabel yang ada di kolom A:C (karena tabel di kolom G:i sebenarnya memiliki layout yang sama dengan tabel di kolom A:C)

Ada 4 contoh dataset. Semua area yang berwarna kuning adalah cells kosong beneran (blanks)

Pada gambar yang bawah, ada baris total. Kadang tampilan kepada user membutuhkan baris total tersebut.

Pada baris total tersebut, teks 'Total' tampak ditengah 2 buah cells, yaitu range A6:B6.
Hal ini bisa jadi karena :
a. di-merge
atau
b. di atur agar kedua cells tersebut memiliki alignment horizontal berupa center accross selection

> Menghindari error saat pencarian cells kosong (blanks) sejatinya bisa dihindari jika area pencarian sudah dipastikan memiliki cells kosong yang tetap.

Misalnya, pada datasets yang ada di kolom A:C tersebut, sudah pasti ada cells kosong di baris ke-5, sebanyak jumlah kolom dataset.

Nah...

baris kode :

Range("a1").currentregion 'akan menghasilkan range A1:C4

Range("g3").currentregion 'akan menghasilkan range G3:i6

berhubung dibutuhkan cells kosong yang pasti tetap jumlahnya dan baris pertama adalah header, maka area pencarian sebaiknya A2:C5 atau G4:i7 yang pasti memiliki cells kosong sebanyak jumlah kolom area pencarian. Area tersebut didapat dari hasil currentregion yang kemudian di-offset +1 baris.

baris kodenya :

Range("a1").currentregion.offset(1)

Range("g3").currentregion.offset(1)

Jumlah cells kosong yang sudah pasti adalah sebanyak jumlah kolom dari area pencarian.

baris kodenya :

Range("a1").currentregion.columns.count
Range("g3").currentregion.columns.count

Jumlah cells kosong di area pencarian (termasuk cells kosong yang sudah pasti sebanyak jumlah kolom area pencarian) adalah :

Range("a1").currentregion.offset(1).specialcells(xlCellTypeBlanks).count 'tidak akan pernah menghasilkan error karena pasti ada, minimal baris terbawah

Range("g3").currentregion.offset(1).specialcells(xlCellTypeBlanks).count 'tidak akan pernah menghasilkan error karena pasti ada, minimal baris terbawah

Jadi, kalau mau cek ada cells kosong atau tidak, lalu jika ada cells kosong akan keluar dari proses disertai pesan, bentuknya bisa menjadi :

with range("a1").currentregion.offset(1)

if .count > .columns.count then 'ada cells kosong, karena ada lebih dari jumlah kolom area pencarian

msgbox "Tidak boleh ada yang kosong",vbexclamation,"Cek isian"

exit sub

endif

end with

*** untuk dataset di G3 bisa dibuat sendiri ya ***

> Kalau kolom kuncinya hanya 2 kolom pertama dan tidak boleh ada yang kosong

Area pencariannya disesuaikan agar merujuk ke kolom-kolom kunci saja.

Misal karena kolom kunci adalah 2 kolom pertama

with range("a1").currentregion.offset(1).resize(,2)

if .count > .columns.count then 'ada cells kosong, karena ada lebih dari jumlah kolom area pencarian

msgbox "Tidak boleh ada yang kosong",vbexclamation,"Cek isian"

exit sub

endif

end with

*** hmmm.... yang diubah hanya 1 part dari sekiun baris kode bukan ? ****

> Kalau kolom kuncinya hanya 1 kolom tapi kolom ke-2

Area pencariannya disesuaikan menjadi 1 kolom lalu digeser ke kolom yang dibutuhkan.

Misal karena kolom kunci adalah 1 kolom di kolom ke-2 atau kolom B.

Artinya, area pencarian disesuaikan menjadi 1 kolom dengan .Resize(,1)

Lalu digeser ke kolom ke-2 (kolom B), yaitu dari kolom A lompat +1 kolom agar sampai kolom B dengan .Offset(0,1)

Maka jadinya begini :

with range("a1").currentregion.offset(1).resize(,1).OFFSET(0,1)

if .count > .columns.count then 'ada cells kosong, karena ada lebih dari jumlah kolom area pencarian

msgbox "Tidak boleh ada yang kosong",vbexclamation,"Cek isian"

exit sub

endif

end with

*** hmmm.... yang diubah tetap hanya 1 part dari sekiun baris kode bukan ? ****

>>> tapi, kurang cakep kalau ada offset 2 bijik seperti itu, jadi disederhanakan menjadi :

with range("a1").currentregion.offset(1,1).resize(,1)

if .count > .columns.count then 'ada cells kosong, karena ada lebih dari jumlah kolom area pencarian

msgbox "Tidak boleh ada yang kosong",vbexclamation,"Cek isian"

exit sub

endif

end with

>>> Lumayan cakep lah...

hehehe...

Tapi pada kondisi ada baris total yang selalu rapat dengan si dataset, ceritanya akan berbeda sedikit.

Contoh :

​> Perhatian khusus pada area baris total :

1. Jika baris total ada yang di-merge cells, maka semua area mergecells itu berstatus blanks

Contoh : Baris total di A5:C5 memiliki area di-merge berupa 2 cells di merge cells pada A5:B5 dan cells lainnya di baris tersebut ada isinya (misalnya berisi formula Sum), berarti ada penambahan 2 cells kosong

with range("a1").currentregion.offset(1)

if .count > .columns.count + 2 then 'ada cells kosong, karena ada lebih dari jumlah kolom area pencarian

msgbox "Tidak boleh ada yang kosong",vbexclamation,"Cek isian"

exit sub

endif

end with

2. Jika baris total ada yang diatur alignment horizontal center accross selection, maka di baris itu ada 1 cells tempat penulisan kata 'Total' yang tidak blank

Contoh : Baris total di A5:C5 memiliki area yang diatur dengan alignment horizontal center accross selection berupa 2 cells pada A5:B5 dan cells lainnya di baris tersebut ada isinya (misalnya berisi formula Sum), berarti ada penambahan 1 cells kosong

with range("a1").currentregion.offset(1)

if .count > .columns.count + (2 - 1) then 'ada cells kosong, karena ada lebih dari jumlah kolom area pencarian

msgbox "Tidak boleh ada yang kosong",vbexclamation,"Cek isian"

exit sub

endif

end with

Yang perlu diingat, selain dengan CurrentRegion, bisa dijuga dengan cara yang lain. Tapi prinsipnya adalah selalu memastikan area pencarian diatur melingkupi sejumlah cells yang beneran masih kosong.

Regards,

Kid


2017-04-06 8:48 GMT+07:00 'Heru Safrudin' fcprocessing.bisikediri@bisi.co.id [belajar-excel] <belajar-excel@yahoogroups.com>:

Yth. Mr. Kid yang baik,

Terima kasih atas ilmunya yang sangat bermanfaat.

Pernjelasan tambahan:

Maaf Mr. Kid kalau pertanyaan saya salah, sebenarnya saya ingin membuat form di lembar kerja excel, dimana range yang saya tentukan yaitu

Range("A1").Resize(Range("A1").CurrentRegion… (sebenarnya bukan range A1 yang berarti keseluruhan/full currentregion)

Tidak boleh kosong atau kata lain semua cell harus terisi

Saya maksudkan sebelum menekan tombol Submit akan ada cek apakah range yang saya tentukan sudah terisi semua

Demikian Terima kasih

Heru Safrudin

Image removed by sender. Heru SafrudinImage removed by sender. BISI,Heru Safrudin,YM online

From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
Sent: 05 April 2017 13:06
To: BeExcel
Subject: Re: [belajar-excel] Menemukan cell yang kosong

Hai Heru,

Baris kode :

Range("A1").Resize(Range("A1").CurrentRegion.Rows.Count,Range("A1").CurrentRegion.Columns.Count).SpecialCells(xlCellTypeBlanks).select

tugasnya untuk select yang blank (kalau ada).

Bagian :

Range("A1").CurrentRegion untuk select all yang berjejeran ada isinya

.Rows.Count untuk mendapatkan jumlah baris

.Columns.Count untuk mendapatkan jumlah kolom

Bagian :
Range("A1").Resize(Range("A1").CurrentRegion.Rows.Count,Range("A1").CurrentRegion.Columns.Count)

sebenarnya adalah :
Range("A1").CurrentRegion

*** sampai disini ***

baris kode tersebut bisa diganti menjadi :
Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks).select

**********************

Bagian :

.select untuk memblok range

Andai sudah tahu akan diapakan si cells blank itu, maka bisa jadi .select tidak diperlukan

Contoh :

yang blank akan diisi angka 0
Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks).value=0

Bagian :

.value untuk menggunakan properti bernama Value yang bertugas sebagai wadah suatu nilai

.value=0 berarti menyimpan nilai 0 ke properti value dari objects yang terdefinisi sebagai

Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks)

Variabel sangatlah berguna.

dim rng as range

set rng=Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks)

Bahasa manusia :

"cel, atur supaya si rng berisi range yang blank [.SpecialCells(xlCellTypeBlanks)] dari semua range yang bersambungan [.CurrentRegion] dengan range A1 [Range("A1")]"

Karena si variabel rng sudah berisi yang blank saja, maka yang blank bisa diproses bermacam-macam

rng.value=0 'isi dengan angka 0

rng.font.bold=true 'font nya di bold

dan sebagainya hanya merujuk ke rng

Selain dengan variabel, beberapa proses juga bisa dilakukan dengan menggunakan blok with ... end with

with Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks)

.value=0

.font.bold=true

end with

--------------------------------

dah... sekarang kembali ke kasus pokoknya
--------------------------------

trap error biasanya dengan klausa On Error

contoh :

1. Kalau terjadi error, abaikan saja dan proseslah baris kode berikutnya.

on error resume next

'baris kode yang kemungkinan bisa memicu error

'baris kode proses lainnya

2. Kalau terjadi error, langsung menuju baris label bernama ADA_ERROR

on error goto ADA_ERROR

'baris kode yang kemungkinan bisa memicu error

'baris kode proses lainnya

ADA_ERROR: 'label untuk tujuan melompati baris kode tertentu

'baris kode selanjutnya

3. mengembalikan trap error ke set default VB/VBA dengan :

on error goto 0 'kalau ada error yang balik ke baris error itu lagi

menghapus informasi error yang pernah terjadi dengan :

err.clear

> Contoh :

kalau memilih suatu range yang blank di suatu area range, bisa muncul error kalau ternyata tidak ada yang blank.

kalau tidak ada yang blank, prosesnya akan menampilkan print preview

kalau ada yang blank, prosesnya menampilkan pesan bahwa masih ada cells yang belum diisi

dim rng as range

on error resume next

set rng=Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks)

if rng is nothing then 'kalau variabel bernama rng gak ada isinya object rang tertentu, berarti gak ada yang blank

'lakukan print preview

rng.printpreview

else 'berarti ada yang blank, karena variabel rng ada isinya object range tertentu

msgbox "Masih ada cells yang belum diisi.",vbexclamation,"Ada blank"

endif

err.clear

on error goto 0

Baris kode berbunyi :
if rng is nothing then

bisa juga diganti dengan :

if err.number<>0 then

Regards,

Kid

2017-04-05 11:52 GMT+07:00 'Heru Safrudin' fcprocessing.bisikediri@bisi.co.id [belajar-excel] <belajar-excel@yahoogroups.com>:

Dear All,

Untuk menemukan cell yang kosong dalam range saya tentukan dengan kode vba sebagai berikut :

Range("A1").Resize(Range("A1").CurrentRegion.Rows.Count,Range("A1").CurrentRegion.Columns.Count).SpecialCells(xlCellTypeBlanks).select

Dengan prosedur diatas cell yg kosong akan ter-select, tapi jika tidak ada cell yang kosong maka akan muncul pesan Error

Pertanyaan saya bagaimana cara men-trap error prosedur diatas jika tidak ditemukan cell yang kosong ?

Mohon pengetahuannya

Terima kasih

Heru Safrudin

Image removed by sender. Heru SafrudinImage removed by sender. BISI,Heru Safrudin,YM online

Fri Apr 7, 2017 12:21 am (PDT) . Posted by:

"farud oke"

Apa yg diberikan mas dede ada debug vba di file aslinya ketika ada
penginputan siswa,biar lebih jelas file aslinya saya lampirkan

Pada tanggal 6 Apr 2017 2.58 PM, "'Dede Sulaeman'
dede_sulaeman@pinusmerahabadi.co.id [belajar-excel]" <
belajar-excel@yahoogroups.com> menulis:

Dear Farud,

Seperti terlampirkah?

Salam,

DD

*From:* belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]

*Sent:* 06 April 2017 11:12
*To:* belajar-excel@yahoogroups.com
*Subject:* [belajar-excel] Menyembunyikan kolom berdasarkan semedter &
jenjang di sheet lain [1 Attachment]

Assalamualaikum..
Mohon bantuan teman2 master excel dengan pertanyaan saya yg selengkapnya
saya lampirkan di file.
Atas bantuannya saya sampaikan terimakasih

Fri Apr 7, 2017 12:21 am (PDT) . Posted by:

"farud oke"

Mohon bantuan para master excel dengan persoalan yg saya hadapi,file
terlampir
Atas bantuannya saya ucapkan terima kasih

Fri Apr 7, 2017 12:24 am (PDT) . Posted by:

"Novri Bastian"

Selamat Siang Master,

Saya Nopri, sebelumnya saya membuat aplikasi penilaian namun ada kendala
dengan membuat hasil score di menu form sehingga saya buat dibelakang
layar/di sheetnya. serta untuk menambahkan nama agent/tanggal menggunakan
command button namun datanya ada didalam formnya bukan di sheet..

mohon bantuannya para master.... terima kasihScoring_App.xlsm
<http://milis-belajar-excel.1048464.n5.nabble.com/file/n5735820/Scoring_App.xlsm>

Fri Apr 7, 2017 3:03 am (PDT) . Posted by:

"Heru Safrudin" heru.safrudin

Dear B-Exceller,

Bermain sambil bekerja di excel memang menyenangkan dan seakan tak habis
untuk diexplore.

Nah sekarang saya ingin tahu bagaimana caranya mencatak dengan mode text
seperti mencetak mencetak struk pembelian atau formulir preprinted lainnya ?

Karena jika kita cetak dengan font atau mode graphic proses pencetakannya
butuh waktu lama, apalagi kalau jumlah yang dicetak banyak.

Mohon pencerahannya

Terima kasih

Heru Safrudin

<ymsgr:sendIM?heru.safrudin>; Heru SafrudinBISI,Heru Safrudin,YM online

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