Tecnologia, programação e muito Visual FoxPro.

segunda-feira, 1 de junho de 2009

Re: ]] XL-mania [[ Membuat Workbook yg Otomatis jumlah dan nama Sheets-nya Sesuai List



Setelah punya wokbuk dengan banyak sheets, kadang-kadang kita perlu merawat keurutan
penampakan sheetsnya di jajaran TabSheet.


Sebab dengan berjalannya waktu mungkin kita banyak menginsert sheet baru.
Jika sheets cukup banyak, memindah-pindah sheets demi keurutan tertentu, cukup membuat
anda menderita
Kalo gitu... anda mungkin perlu tool yg sekali di-ceklik sanggup meng-Urutkan sheets.. sesuai selera..

Nama sheets: misal:  Jan, Feb, s/d Dec  jika diurutkan dengan cara biasa hasilnya bukan
Jan, Feb, Mar dst, malainkan : Apr, Aug, Dec, Feb dst karena diurutkan alfabetik.
Kita akan dapat mengurutkan menjadi urut sesuai nilai BULAN jika kita mengolah dulu nama
sheet tsb menjadi data tanggal. Dan hal spt ini bukan hal yg terlalu sulit.
Dalam "bubble-sort"nya pemindahan/pengurutan tempat "Data" bukan dengan cara me-NUKAR-kan
tetapi kita pakai salah satu methods milik object sheet, yaitu Move.

Begitu juga jika 1 s/d 31 diurutkan, anda akan mendapat urutan
1,10,11.....19,2,20,21,... dst  bukan 1,2,3,4 dst karena nama sheet walaupun penampakannya
angka tetap saja bertype string, KECUALI dalam proses mengurutkan anda sempat mengkonversi
dulu menjadi Integer...

Workbook lampiran mail ini, adalah peningkatan dari filie yg dilampirkan di mail sebelumnya;
di situ ada penambahan prosedur Sub untuk mengurutkan penampakan sheets dengan berbagai cara.

Menjalankan makronya (agar mampu mensort sheets di workbook LAIN), kedua file (workbook1 bermakro
dan workbook2 berisi sheets yg akan diurutkan) harus terbuka.
dari workbook2 tekan Alt+F8, pilih nama makronya dan tekan tombol RUN

--------------------
Sub SheetNameSort()
  ' mengurutkan letak sheets berdasarkan
  ' Nilai TEXT (AlfaNumeric / alfabetik) NamaSheet
  ' siti Vi / 31mei2009
  ' tetap dgn algoritma bubble-sort 1/2(N)*(N-1)
  '---------------------------------------------
   Dim i As Integer, N As Integer
   Dim k As Integer, j As Integer
   N = ActiveWorkbook.Worksheets.Count
   For i = 1 To N - 1
      For k = N To (i + 1) Step -1
         j = k - 1
         If Worksheets(k).Name < Worksheets(j).Name Then
            Worksheets(k).Move before:=Worksheets(j)
         End If
      Next k
   Next i
End Sub


Sub SheetMonthSort()
  ' mengurutkan letak sheets berdasarkan
  ' Nilai NamaBulan pada TabSheet
  ' siti Vi / 31mei2009
  '-------------------------------------
   Dim i As Integer, N As Integer
   Dim k As Integer, j As Integer
   Const mmyy As String = " 01, 2009"
   N = ActiveWorkbook.Worksheets.Count
   For i = 1 To N - 1
      For k = N To (i + 1) Step -1
         j = k - 1
         If DateValue(Worksheets(k).Name & mmyy) _
          < DateValue(Worksheets(j).Name & mmyy) Then
            Worksheets(k).Move before:=Worksheets(j)
         End If
      Next k
   Next i
End Sub



Sub SheetNameValueSort()
  ' mengurutkan letak sheets berdasarkan
  ' Nilai Numerik NamaSheet
  ' siti Vi / 31mei2009
  '---------------------------------------------
   Dim i As Integer, N As Integer
   Dim k As Integer, j As Integer
   N = ActiveWorkbook.Worksheets.Count
   For i = 1 To N - 1
      For k = N To (i + 1) Step -1
         j = k - 1
         If Val(Worksheets(k).Name) < Val(Worksheets(j).Name) Then
            Worksheets(k).Move before:=Worksheets(j)
         End If
      Next k
   Next i
End Sub

Sub MMMYY_SheetValueSort()
  ' mengurutkan letak sheets berdasarkan
  ' Nilai Numerik NamaSheet
  ' siti Vi / 31mei2009
  '---------------------------------------------
   Dim i As Integer, N As Integer
   Dim k As Integer, j As Integer
   N = ActiveWorkbook.Worksheets.Count
   For i = 1 To N - 1
      For k = N To (i + 1) Step -1
         j = k - 1
         If DateValue("1 " & Worksheets(k).Name) < _
            DateValue("1 " & Worksheets(j).Name) Then
            Worksheets(k).Move before:=Worksheets(j)
         End If
      Next k
   Next i
End Sub
------------------------------



2009/5/30 setyoDevi <setiyowati.devi@gmail.com>
>
> anda punya Daftar / List !
> misalnya deretan angka 01 s/d 31 (menggambarkan tanggal dlm sebulan)
> atau: Jan, Feb, Mar dst sampai Des (nama bulan dlm satu tahun)
> atau: List lain apapun yg berisi items sesuai keperluan anda
> Lalu setiap item ingin dibuatkan 1 sheet dan nama item tertulis sbg nama Sheet;
> dan semua itu tergabung dlm sebuah workbook.
>
> Jika List tsb sudah tertulis di sekolom (atau sebaris) cells, (kita sebut RangeList)
> untuk membuat workbooknya anda tidak perlu repot, karena
> (misal dlm kasus ingin workbook berisi 12 sheet nama-nama bulan)
>
> 1.
> untuk mengetahui jumlah 12, kan bisa dicari dengan rumus, misal ROWS(RangeList)
> 2.
> untuk membuka workbook yg pasti berisi 12 sheet, sebelumnya kita tinggal mengatur
> setting (pada dialog options)  Sheets In New Workbooks = 12
> 3.
> Untuk memberi nama tiap sheets = teks di tiap cell pada RangeList, secara urut,
> kita tinggal memberi nama dari sheet paling depan, diberi nama ex text yg kita baca
> dari RangeList mulai dari cell paling atas / paling kiri.
> 4.
> Setelah selesai jangan lupa mengembalikan nilai setting Sheets In New Workbooks
> ke nilai semula.
>
> Rangkaian semua tindakan tsb boleh saja anda lakukan secara manual, tetapi akan
> lebih cepat kalau dicodekan lebih dulu, agar untuk mengerjakan keperluan sejenis
> di lain hari, kita tinggal menyentuh tombol saja
>
> Listnya tidak harus sama dengan List yg pernah dibuat,
> anda dapat membuat List apa saja, kapan saja...
> Blok RangeList-nya !  Pencet Tombol nya ! 
> Jadi Sir!   Yes, We Can, Sir !
>

__._,_.___
+-:: XL-mania ::::::::::::::::::::----------------------------------+
| Uanggggg... di manakah kau beradaaaa?                             |
| http://www.facebook.com/group.php?gid=37671048001&ref=mf          |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message,  melecehkan,  tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan  winzip  jika  perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke  |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/           |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau...  |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html           |
+-------------------------------------------------------------------+
| Message lama ada di :                                             |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id]  |
| http://www.mail-archive.com/xl-mania@yahoogroups.com              |
+-------------------------------------------------------------------+
Recent Activity
Visit Your Group
Give Back

Yahoo! for Good

Get inspired

by a good cause.

Y! Toolbar

Get it Free!

easy 1-click access

to your groups.

Yahoo! Groups

Start a group

in 3 easy steps.

Connect with others.

.

__,_._,___

Nenhum comentário:

Arquivo do blog