Dear Mbak/Ibu...

Thanks, iya sih enak kalo tinggal pencet tombol.
Kalo ndak pake makro bisa ngga ya.. (soale saya ndak bisa ngedit makro lho...;))
sapa tau nanti ada beberapa item yang berubah.


Untuk diskon, hanya diberikan jika total lama tinggal lebih dari 7 hari dan 
diberikan sebesar lama tinggal x 1%.
(maks 50% untuk low season dan 30% untuk high season).
 
Seperti contoh di lampiran yang saya buat, check in/out 25 Mar 2012 - 11 Apr 
2012

Low season 25 mar - 3 apr = 9 night-------> diskon 9% (jika total lama tinggal 
suatu saat lebih dari 50 night berarti diskon yg diberikan maks 50%)

high season 3 apr(bisa ngga hasilnya mulai tanggal 3 bukan tanggal 4) - 11 apr 
= 8 night------>diskon 8% (jika total lama tinggal suatu saat lebih dari 30 
night berarti diskon yg diberikan maks 30%)

Maaf kalo agak membingungkan, semoga bisa dimengerti.



________________________________
 Dari: i Haps <hapsari.stlizb...@gmail.com>
Kepada: belajar-excel@yahoogroups.com 
Dikirim: Minggu, 29 Januari 2012 12:10
Judul: Re: [belajar-excel] menentukan check in/out dan discount rate
 

  
Pakai tombol boleh ndak ya ..
Soalnya: untuk kasus ini pakai tombol sepetinya akan lebih gampang !
Apalagi request dari pak Aji (saya kutipkan) :
 >>  "Jadi nantinya saya tinggal input tanggal check in dan out saja."
yaitu lebih ke ingin menyelesaian task nya; bukan mempelajari prosesnya

Dengan tombol; kita hanya perlu  :
-- Enabled - kan makronya
-- isi dua cell kriterianya (tgl CheckIn dan tgl CheckOut) dengan data type DATE
-- Pencet tombol - nya
-- selesai
(ada yg belum tutas yaitu rumus diskon saya tidak tahu babar blass, 
karena contoh - vs-  "tata-tertibnya tidak sinkron)

"Skenario" kerja si tombol-nya kira-kira sbb:


Sub Season(CheckInDate As Date, CheckOutDate As Date, SeasonTbl As Range)
   ' coded by i-Hapsari / asrama suster ngesot, suatu tempat di Jateng
   ' BeExcel Case : tgl 28 Jan 2012
   '---------------------------------------------------------------
   Dim Report As Range, fun As Object, ArrDate() As Variant
   Dim i As Integer, r As Integer, n1 As Integer, n2 As Integer
   Dim xDate As Long, D As Long
   
   Set Report = Sheets("ProForma_Inv").Range("A6")
   Set fun = WorksheetFunction
   Report.CurrentRegion.Offset(1, 0).ClearContents
   If CheckInDate < SeasonTbl(2, 1).Value Then _
      CheckInDate = SeasonTbl(2, 1).Value
   If CheckOutDate > SeasonTbl(7, 2).Value Then _
      CheckOutDate = SeasonTbl(7, 2).Value
   
   Application.Calculation = xlCalculationManual
   Application.ScreenUpdating = False
   
   ' Loop mengunjungi semua baris di tabel Season
   For i = 2 To SeasonTbl.Rows.Count
      ' Loop menyusun Array-Tgl ex current Season (i-Season) 
      ' setiap baris di Tabel Season akan dibuat array masing-masing
      ' = 6 array secara bergantian...
      ' jika disebutkan periode season = 1 Jan 2012 sd 5 Jan 2012
      ' bentuk arrayTgl-nya kir2 spt ini :  
      '   {1 Jan 2012, 2J an 2012, 3 Jan 2012, 4J an 2012, 5 Jan 2012}
      For xDate = SeasonTbl(i, 1) To SeasonTbl(i, 2)
         D = D + 1: ReDim Preserve ArrDate(1 To D)
         ArrDate(D) = CDate(xDate)
      Next xDate
      
      ' mencari posisi Check-In-Date pada i-Season simpan di n1
      n1 = 0
      On Error Resume Next
      n1 = fun.Match(CheckInDate, ArrDate, 0)

      ' If Check_In ada di i-Season
      If n1 > 0 Then
         ' index baris repor dinaikkan 1 : r = r + 1
         ' tulis nama  i-Season
         ' -- Jika baris di atas 1
         ' tuliskan Tgl check-in
         ' -- Jika indexbaris masih = 1 (Else)
         ' tuliskan Tgl Awal i-Season
         End If
      End If
          
      ' If kriteria Tgl-Check-In ada di dlm season ini
      n2 = 0
      ' cari index Check-Out-Date di dilm iSeason
      ' gunakan fungsi Match sepeti di atas  simapan di variable n2
      ' If Tgl-Check-Out ADA di dlm Season itu
         ' tuliskan tgl check-out
         ' tuliskan Formula total ( "=RC[-1]-RC[-2]+1" )
         ' tuliskan rate
         ' tuliskan total amount
         ' keluar dari loop (Exit For)
         
      ' If Tgl-check-out TIDAK ADA di Season itu
         ' tuliskan tgl akhir i-season (Report(r, 3) = ArrDate(UBound(ArrDate))
         ' tulisan Formula total "=RC[-1]-RC[-2]"
         ' tuliskan rate  :( Report(r, 5) = SeasonTbl(i, 4) )
         ' tuliskan rumus amount: Report(r, 6).FormulaR1C1 = "=RC[-2]*RC[-1]"
      ' End If
      End If
   Next i
End Sub



2012/1/28 widodo aji <boss...@yahoo.com>

 
>Dear Agan-agan master excel,
>Bisa tolong bantu saya untuk menentukan check in dan out berdasar database 
>yang ada 
(masuk ke season mana saja), juga untuk discount ratenya.
>Jadi nantinya saya tinggal input tanggal check in dan out saja.
>Keterangan ada di attachment.
>Terima kasih banyak atas bantuannya.
>Widodo
>
>
 

Kirim email ke