Tecnologia, programação e muito Visual FoxPro.

sábado, 29 de outubro de 2011

Re: ]] XL-mania [[ Merge kolom bersyarat

Jika 1 kolom mewakili 1 Pekan (Week), sebetulnya penggambaran Pak EKO mengenai 
BULAN dan WEEK itu sulit dipraktekkan;  karena

** Week Selalu Dimulai pada Hari Minggu (atau bisa diatur agar Week dimulainya Hari Senin)
** Sedangkan Tgl Satu (awal setiap bulan) bisa jatuh pada hari apa saja

Jadi bisa saja misalnya Week#12  mengandung dua Nama bulan  
2 hari pertama = Week 12 masih berada di bulan Maret 
5 hari berikutnya berada di bulan April
Bagaimana cara pak eko merepresentasikan dengan 1 kotak = 1 week??
Harus ada nilai yg dikalahkan; misalnya (untuk permisalan di atas: Awal April = Week#13 
(karena Week#12 sudah dipakai dlm kolom di bulan Maret.)

Mudah mudahan seperti itu yg dikehendaki oleh pak Eko...


Workbook terlampir berusaha memenuhi keinginan pak Eko
1. 
Menggenerate daftar WEEK ditulis dlm satu baris (sekitar 53 kolom),  yaitu
banyaknya Week dalam kurun satu tahun (di mana TAHUNNYA ditentukan melalui 
sebuah cell yg nilainya dapat diganti-ganti)
2. 
Melengkapi daftar tsb dengan nama bulan di baris atasnya
3. 
Setiap Nama BULAN yg SAMA;  cellsnya di merge (digabung menjadi seperti satu cell).
Semua dilakukan dengan makro tanpa tabel bantu

Tabel yg berada di sheet lain, bukan sebagai tabel bantu, tetapi tabel yg dibuat dengan 
formula yg hanya ingin menunjukkan bahwa AWAL BULAN tidak harus selalu 
BERSAMAAN dengan AWAL Pekan (awal Week), silakan dihapus jika tidk ada manfaatnya...

-hapsari-


'----vba code ditulis di modul standar----
Sub WeekMonthBox(Tahun As Integer, Rng1 As Range)
   ' generate Daftar Bulan & WeekNum Tahun tertentu
   ' Hapsari, Oct 2011
   '-----------------------------------------------
   Dim n As Long, WeekN As Integer
   Dim Jan1 As Date, Dec31 As Date
   If Tahun < 1900 Then Tahun = 1900
   
   Jan1 = DateSerial(Tahun, 1, 1)
   Dec31 = DateSerial(Tahun, 12, 31)
   
   With Rng1.Resize(2, 55)
      .MergeCells = False
      .Clear
      .Orientation = 90
      .HorizontalAlignment = xlCenter
      .VerticalAlignment = xlCenter
   End With
   
   With WorksheetFunction
      For n = CLng(Jan1) To CLng(Dec31)
         If Not .WeekNum(CDate(n)) = .WeekNum(CDate(n - 1)) Then
            WeekN = WeekN + 1
            Rng1(1, WeekN) = Format(CDate(n), "MMMM")
            Rng1(1, WeekN).BorderAround ColorIndex:=5, Weight:=xlThin
            Rng1(2, WeekN) = WeekN
            Rng1(2, WeekN).BorderAround ColorIndex:=5, Weight:=xlThin
         End If
      Next
   End With
   Call ctv_MonthBoxMerge(Rng1.Resize(2, WeekN))

'-------------------------------------------------


2011/10/27 Eko Wahyudi <xo_wahyoedy@yahoo.co.id>


Mungkin saya kurang lengkap menyampaikan permasalahan saya.

Tujuan saya menggunakan macro/vba adalah sebagai berikut :

Berbeda tahun weeknum-nya berbeda-beda saya ingin setiap 

merubah tahun langsung merge kolom-nya juga mengikuti, 

(lebih jelasnya bisa view di attachment)

Terimakasih atas perhatian, bantuan solusinya.

 

Salam

Eko

 

From: XL-mania@yahoogroups.com [mailto:XL-mania@yahoogroups.com] On Behalf Of STDEV(i)
Sent: 27 Oktober 2011 11:29
To: XL-mania@yahoogroups.com


Subject: Re: ]] XL-mania [[ Merge kolom bersyarat

kepada: ysh. Pak Eko Wahyudi (thread-maker) dimohon jangan merasa terganggu

karena posting ini tidak saya tujukan kepada anda, melainkan untuk keperluan 

pembelajaran makro/vba excel bagi members yg sedang mulai ber-makro-ria

 

 

Coding yg sudah ada itu masih dapat di ringkas sbb

-----------------------------cut--------------------------------

 

Nenhum comentário:

Arquivo do blog