Jumat, 05 September 2014

macro excel lebih fleksibel

seringkali kalau melihat macro excel bekerja bisa bikin pusing.

untuk mengatasinya gunakan kode:
- diawal macro
    Application.ScreenUpdating = False
dan diakhir macro gunakan kode :
    Application.ScreenUpdating = True

untuk kode makro yang langsung menunjuk alamat sel, akan terlalu riskan, dan tidak fleksibel
karena saat letak cel berubah maka macro tidak akan jalan malah salah copy.
seperti contoh dibawah :
    Range("S10").Select



agar macro lebih fleksible saat blok atau pilih beberapa cell langsung aja di bikin referensi dengan define name, contoh range diberi nama refername:
ActiveWorkbook.Names.Add Name:="refername", RefersTo:=Selection

nanti saat proses bisa langsung menunjuk ke referensi nama sel
contoh proses filter dibawah:

    ActiveSheet.Range("refername").AutoFilter Field:=8, Criteria1:="=*arti*" _
        , Operator:=xlOr, Criteria2:="=*ada*"


atau proses copy contoh:
    Application.Goto Reference:="almckintfc"
    Selection.Copy


saat pertama kali buka file untuk mendukung fleksibilitas.
maka blok atau drag sell tidak usah nyebut alamat cell.



tapi bisa dengan blok ke ujung kanan lalu ke ujung bawah dan langsung beri nama rangenya.

Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Names.Add Name:="refername1", RefersTo:=Selection

bisa juga dengan blok langsung dari tempat awal ke ujung akhir cell dan langsung beri nama rangenya.

Range(Selection, ActiveCell.SpecialCells(xlLastCell))
ActiveWorkbook.Names.Add Name:="refername1", RefersTo:=Selection



 http://mymacrosformula.blogspot.com/


Baiklah sekarang kita mulai masukkan dalam sebuah persoalan:

soal : aku ingin agar bisa table hasil salinan atau copyan (dari web misalnya) ke excel langsung bisa dipaste dan langsung bisa disortir. dan tempat pastenya bisa dimana saja? bisa dicell mana saja. (tidak ditentukan tempat tabelnya di cell mana)
dan yang menjadi key untuk sortirnya adalah kolom ke tiga

jawab : 
tehniknya 
- blok tabel dgn macro drag / blok range sampai ke ujung kanan dan drag sampai ke ujung 
  bawah. http://mymacrosformula.blogspot.com/
- gunakan macro define name untuk menamakan tabel.
- gunakan macro bolak balik cell untuk menempatkan cursor di tempat paling kiri dan paling 
  atas tabel. atau a1 pada tabel.
- gunakan macro offset cell untuk memindahkan cursor ke header kolom ketiga (yg menjadi 
  kunci sortir). http://mymacrosformula.blogspot.com/

- gunakan macro define name untuk menamakan header yg menjadi key sortiran.

- gunakan macro range untuk blok range tabel.
- baru terakhir gunakan makro sortir dengan sort key nya adalah referensi sell yang sudah diberi nama tadi.



contoh macronya:

    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    '[[http://mymacrosformula.blogspot.com/2014/09/macro-excel-lebih-fleksibel.html]]   
    ActiveWorkbook.Names.Add Name:="area", RefersTo:=Selection
   
    ActiveCell.Offset(1, 0).Select
    ActiveCell.Offset(-1, 0).Select
 
    '[[http://mymacrosformula.blogspot.com/2014/09/macro-excel-lebih-fleksibel.html]] 
    
    ActiveCell.Offset(0, 3).Select

    ActiveWorkbook.Names.Add Name:="kolomtiga", RefersTo:=Selection    '[[http://mymacrosformula.blogspot.com/2014/09/macro-excel-lebih-fleksibel.html]]     
    Range("area").Select
    Selection.Sort Key1:=Range("kolomtiga"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom   

http://mymacrosformula.blogspot.com/
http://mymacrosformula.blogspot.com/
http://mymacrosformula.blogspot.com/
http://mymacrosformula.blogspot.com/
http://mymacrosformula.blogspot.com/
http://mymacrosformula.blogspot.com/




Tidak ada komentar:

Posting Komentar

Page View