[belajar-excel] Menemukan cell yang kosong

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[belajar-excel] Menemukan cell yang kosong

Milis Belajar Excel mailing list
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").CurrentR
egion.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


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


 


 


 


 


 


 


 



image001.gif (3K) Download Attachment
image002.gif (64K) Download Attachment
image003.png (3K) Download Attachment
image005.png (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [belajar-excel] Menemukan cell yang kosong

Milis Belajar Excel mailing list
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'
[hidden email] [belajar-excel] <
[hidden email]>:

>
>
> 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: Heru Safrudin][image: BISI,Heru Safrudin,YM online]
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

image002.gif (64K) Download Attachment
image005.png (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: [belajar-excel] Menemukan cell yang kosong

Milis Belajar Excel mailing list
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


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

















 








From: [hidden email] [mailto:[hidden email]]
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' [hidden email] [belajar-excel] <[hidden email]>:





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



Heru SafrudinBISI,Heru Safrudin,YM online































image001.gif (3K) Download Attachment
image002.gif (64K) Download Attachment
image003.png (3K) Download Attachment
image004.png (4K) Download Attachment
image005.png (4K) Download Attachment
image006.jpg (582 bytes) Download Attachment
image007.jpg (496 bytes) Download Attachment
image008.jpg (458 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [belajar-excel] Menemukan cell yang kosong [3 Attachments]

Milis Belajar Excel mailing list
Hai Heru,
Coba gunakan code ini untuk memastikan semua "sel_rujukan" dari Form (di Worksheet) terisi:If WorksheetFunction.CountA(Range("sel_rujukan")) < jumlah_cacah_sel_rujukan Then        MsgBox "Data belum diisi dengan lengkap !!!", vbExclamation, "ERROR MESSAGE"        Exit SubEnd If
Salam,HK

      From: "'Heru Safrudin' [hidden email] [belajar-excel]" <[hidden email]>
 To: [hidden email]
 Sent: Thursday, 6 April 2017, 9:00
 Subject: RE: [belajar-excel] Menemukan cell yang kosong
   
    Yth. Mr. Kid yang baik,    Terima kasih atas ilmunya yangsangat bermanfaat.    Pernjelasan tambahan: Maaf Mr. Kid kalau pertanyaan sayasalah, sebenarnya saya ingin membuat form di lembar kerja excel, dimana rangeyang saya tentukan yaitu Range("A1").Resize(Range("A1").CurrentRegion…(sebenarnya bukan range A1 yangberarti keseluruhan/full currentregion) Tidak boleh kosong atau kata lain semuacell harus terisi  Saya maksudkan sebelum menekantombol Submit akan ada cek apakah range yang saya tentukan sudah terisi semua    Demikian Terima kasih    Heru Safrudin                        
From: [hidden email][mailto:[hidden email]]
Sent: 05 April 2017 13:06
To: BeExcel
Subject: Re: [belajar-excel] Menemukan cell yang kosong       HaiHeru, Baris kode : Range("A1").Resize(Range("A1").CurrentRegion.Rows.Count,Range("A1").CurrentRegion.Columns.Count).SpecialCells(xlCellTypeBlanks).select tugasnya untuk selectyang blank (kalau ada).    Bagian : Range("A1").CurrentRegion untukselect all yang berjejeran ada isinya .Rows.Count untuk mendapatkan jumlah baris .Columns.Count untuk mendapatkan jumlahkolom    Bagian :
Range("A1").Resize(Range("A1").CurrentRegion.Rows.Count,Range("A1").CurrentRegion.Columns.Count) sebenarnya adalah :
Range("A1").CurrentRegion    *** sampai disini *** baris kode tersebut bisadiganti menjadi :
Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks).select ********************** Bagian : .select untuk memblok range Andai sudah tahu akandiapakan si cells blank itu, maka bisa jadi .select tidak diperlukan    Contoh : yang blank akan diisiangka 0
Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks).value=0    Bagian : .value untuk menggunakan properti bernamaValue yang bertugas sebagai wadah suatu nilai .value=0 berarti menyimpan nilai 0 keproperti value dari objects yang terdefinisi sebagai  Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks)    Variabel sangatlahberguna. dim rng as range set rng=Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks) Bahasa manusia : "cel, atur supaya sirng berisi range yang blank [.SpecialCells(xlCellTypeBlanks)]dari semua range yang bersambungan [.CurrentRegion] dengan range A1 [Range("A1")]"    Karena si variabel rng sudahberisi 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 hanyamerujuk 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 biasanyadengan klausa On Error contoh : 1. Kalau terjadi error,abaikan saja dan proseslah baris kode berikutnya. on error resume next 'baris kode yangkemungkinan bisa memicu error 'bariskode proses lainnya  2. Kalau terjadi error,langsung menuju baris label bernama ADA_ERROR on error goto ADA_ERROR 'baris kode yangkemungkinan bisa memicu error 'baris kode proseslainnya ADA_ERROR:    'label untuk tujuan melompati baris kode tertentu 'bariskode selanjutnya 3. mengembalikan traperror ke set default VB/VBA dengan : onerror goto 0     'kalau ada error yang balik ke baris erroritu lagi menghapus informasi erroryang pernah terjadi dengan : err.clear > Contoh : kalau memilih suatu rangeyang blank di suatu area range, bisa muncul error kalau ternyata tidak ada yangblank. kalau tidak ada yangblank, prosesnya akan menampilkan print preview kalauada yang blank, prosesnya menampilkan pesan bahwa masih ada cells yang belumdiisi dim rng as range on error resume next set rng=Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks) if rng is nothingthen     'kalau variabel bernama rng gak ada isinya objectrang tertentu, berarti gak ada yang blank      'lakukan print preview      rng.printpreview else   'berartiada yang blank, karena variabel rng ada isinya object range tertentu      msgbox "Masih ada cells yang belum diisi.",vbexclamation,"Adablank" endif err.clear onerror 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:52GMT+07:00 'Heru Safrudin' [hidden email][belajar-excel] <[hidden email]>:    Dear All,   Untuk menemukan cell yang kosongdalam 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 ygkosong akan ter-select, tapi jika tidak ada cell yang kosong maka akan munculpesan Error Pertanyaan saya bagaimana caramen-trap error prosedur diatas jika tidak ditemukan cell yang kosong ? Mohon pengetahuannya   Terima kasih Heru Safrudin                       #yiv0774196715 #yiv0774196715 -- #yiv0774196715ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv0774196715 #yiv0774196715ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv0774196715 #yiv0774196715ygrp-mkp #yiv0774196715hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv0774196715 #yiv0774196715ygrp-mkp #yiv0774196715ads {margin-bottom:10px;}#yiv0774196715 #yiv0774196715ygrp-mkp .yiv0774196715ad {padding:0 0;}#yiv0774196715 #yiv0774196715ygrp-mkp .yiv0774196715ad p {margin:0;}#yiv0774196715 #yiv0774196715ygrp-mkp .yiv0774196715ad a {color:#0000ff;text-decoration:none;}#yiv0774196715 #yiv0774196715ygrp-sponsor #yiv0774196715ygrp-lc {font-family:Arial;}#yiv0774196715 #yiv0774196715ygrp-sponsor #yiv0774196715ygrp-lc #yiv0774196715hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv0774196715 #yiv0774196715ygrp-sponsor #yiv0774196715ygrp-lc .yiv0774196715ad {margin-bottom:10px;padding:0 0;}#yiv0774196715 #yiv0774196715actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv0774196715 #yiv0774196715activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv0774196715 #yiv0774196715activity span {font-weight:700;}#yiv0774196715 #yiv0774196715activity span:first-child {text-transform:uppercase;}#yiv0774196715 #yiv0774196715activity span a {color:#5085b6;text-decoration:none;}#yiv0774196715 #yiv0774196715activity span span {color:#ff7900;}#yiv0774196715 #yiv0774196715activity span .yiv0774196715underline {text-decoration:underline;}#yiv0774196715 .yiv0774196715attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv0774196715 .yiv0774196715attach div a {text-decoration:none;}#yiv0774196715 .yiv0774196715attach img {border:none;padding-right:5px;}#yiv0774196715 .yiv0774196715attach label {display:block;margin-bottom:5px;}#yiv0774196715 .yiv0774196715attach label a {text-decoration:none;}#yiv0774196715 blockquote {margin:0 0 0 4px;}#yiv0774196715 .yiv0774196715bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv0774196715 .yiv0774196715bold a {text-decoration:none;}#yiv0774196715 dd.yiv0774196715last p a {font-family:Verdana;font-weight:700;}#yiv0774196715 dd.yiv0774196715last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv0774196715 dd.yiv0774196715last p span.yiv0774196715yshortcuts {margin-right:0;}#yiv0774196715 div.yiv0774196715attach-table div div a {text-decoration:none;}#yiv0774196715 div.yiv0774196715attach-table {width:400px;}#yiv0774196715 div.yiv0774196715file-title a, #yiv0774196715 div.yiv0774196715file-title a:active, #yiv0774196715 div.yiv0774196715file-title a:hover, #yiv0774196715 div.yiv0774196715file-title a:visited {text-decoration:none;}#yiv0774196715 div.yiv0774196715photo-title a, #yiv0774196715 div.yiv0774196715photo-title a:active, #yiv0774196715 div.yiv0774196715photo-title a:hover, #yiv0774196715 div.yiv0774196715photo-title a:visited {text-decoration:none;}#yiv0774196715 div#yiv0774196715ygrp-mlmsg #yiv0774196715ygrp-msg p a span.yiv0774196715yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv0774196715 .yiv0774196715green {color:#628c2a;}#yiv0774196715 .yiv0774196715MsoNormal {margin:0 0 0 0;}#yiv0774196715 o {font-size:0;}#yiv0774196715 #yiv0774196715photos div {float:left;width:72px;}#yiv0774196715 #yiv0774196715photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv0774196715 #yiv0774196715photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv0774196715 #yiv0774196715reco-category {font-size:77%;}#yiv0774196715 #yiv0774196715reco-desc {font-size:77%;}#yiv0774196715 .yiv0774196715replbq {margin:4px;}#yiv0774196715 #yiv0774196715ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv0774196715 #yiv0774196715ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv0774196715 #yiv0774196715ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv0774196715 #yiv0774196715ygrp-mlmsg select, #yiv0774196715 input, #yiv0774196715 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv0774196715 #yiv0774196715ygrp-mlmsg pre, #yiv0774196715 code {font:115% monospace;}#yiv0774196715 #yiv0774196715ygrp-mlmsg * {line-height:1.22em;}#yiv0774196715 #yiv0774196715ygrp-mlmsg #yiv0774196715logo {padding-bottom:10px;}#yiv0774196715 #yiv0774196715ygrp-msg p a {font-family:Verdana;}#yiv0774196715 #yiv0774196715ygrp-msg p#yiv0774196715attach-count span {color:#1E66AE;font-weight:700;}#yiv0774196715 #yiv0774196715ygrp-reco #yiv0774196715reco-head {color:#ff7900;font-weight:700;}#yiv0774196715 #yiv0774196715ygrp-reco {margin-bottom:20px;padding:0px;}#yiv0774196715 #yiv0774196715ygrp-sponsor #yiv0774196715ov li a {font-size:130%;text-decoration:none;}#yiv0774196715 #yiv0774196715ygrp-sponsor #yiv0774196715ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv0774196715 #yiv0774196715ygrp-sponsor #yiv0774196715ov ul {margin:0;padding:0 0 0 8px;}#yiv0774196715 #yiv0774196715ygrp-text {font-family:Georgia;}#yiv0774196715 #yiv0774196715ygrp-text p {margin:0 0 1em 0;}#yiv0774196715 #yiv0774196715ygrp-text tt {font-size:120%;}#yiv0774196715 #yiv0774196715ygrp-vital ul li:last-child {border-right:none !important;}#yiv0774196715

   

image005.png (4K) Download Attachment
image004.png (4K) Download Attachment
image002.gif (64K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [belajar-excel] Menemukan cell yang kosong

Milis Belajar Excel mailing list
In reply to this post by Milis Belajar Excel mailing list
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,Rang
e("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' [hidden email]
[belajar-excel] <[hidden email]>:

>
>
> 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: Heru Safrudin][image: BISI,Heru Safrudin,YM online]
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *From:* [hidden email] [mailto:belajar-excel@yahoogro
> ups.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,Rang
> e("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,Rang
> e("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' [hidden email]
> o.id [belajar-excel] <[hidden email]>:
>
>
>
> Dear All,
>
>
>
> Untuk menemukan cell yang kosong dalam range saya tentukan dengan kode vba
> sebagai berikut :
>
>
>
> Range("A1").Resize(Range("A1").CurrentRegion.Rows.Count,Rang
> e("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: Heru Safrudin][image: BISI,Heru Safrudin,YM online]
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

xl024_dataset01t.gif (21K) Download Attachment
xl024_dataset02t.gif (11K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: [belajar-excel] Menemukan cell yang kosong

Milis Belajar Excel mailing list
In reply to this post by Milis Belajar Excel mailing list
Terima kasih Pak Hendrik atas ilmunya





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

























From: [hidden email] [mailto:[hidden email]]
Sent: 06 April 2017 10:09
To: [hidden email]
Subject: Re: [belajar-excel] Menemukan cell yang kosong [3 Attachments]








Hai Heru,





Coba gunakan code ini untuk memastikan semua "sel_rujukan" dari Form (di Worksheet) terisi:


If WorksheetFunction.CountA(Range("sel_rujukan")) < jumlah_cacah_sel_rujukan Then


        MsgBox "Data belum diisi dengan lengkap !!!", vbExclamation, "ERROR MESSAGE"


        Exit Sub


End If





Salam,


HK


  _____


From: "'Heru Safrudin' [hidden email] [belajar-excel]" <[hidden email]>
To: [hidden email]
Sent: Thursday, 6 April 2017, 9:00
Subject: RE: [belajar-excel] Menemukan cell yang kosong








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


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





























From: [hidden email] [mailto:[hidden email]]
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' [hidden email] [belajar-excel] <[hidden email]>:





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


Heru SafrudinBISI,Heru Safrudin,YM online





 





























~WRD000.jpg (1K) Download Attachment
image001.gif (3K) Download Attachment
image002.gif (64K) Download Attachment
image003.png (3K) Download Attachment
image004.png (4K) Download Attachment
image005.png (286 bytes) Download Attachment
image006.png (4K) Download Attachment
image007.jpg (582 bytes) Download Attachment
image008.jpg (496 bytes) Download Attachment
image009.jpg (458 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: [belajar-excel] Menemukan cell yang kosong

Milis Belajar Excel mailing list
In reply to this post by Milis Belajar Excel mailing list
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: [hidden email] [mailto:[hidden email]]
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' [hidden email] [belajar-excel] <[hidden email]>:





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: [hidden email] [mailto:[hidden email]]
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' [hidden email] [belajar-excel] <[hidden email]>:





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


































~WRD000.jpg (1K) Download Attachment
image001.gif (3K) Download Attachment
image015.png (83K) Download Attachment
image002.png (49K) Download Attachment
image003.png (25K) Download Attachment
image004.jpg (1K) Download Attachment
image016.jpg (906 bytes) Download Attachment
image017.jpg (754 bytes) Download Attachment
image018.jpg (582 bytes) Download Attachment
image019.jpg (496 bytes) Download Attachment
image020.jpg (458 bytes) Download Attachment
Loading...