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 > >