maaf ikut masuk threads... tanpa melihat proses sebelumnya (karena tidak ada workbook yg dilampirkan) contoh di bawah ini adalah hal yg baru sama sekali, tidak ada hubungan dengan macro yg dicontohkan pak Reza 2001; Ini hanya contoh penggunaan Msgbox function yg* mencabangkan dua kemungkinan * *berdasarkan pilihan user* (di mana user pementukan pilihan dgn menceklik Tombol)
Pencabangan bisa dengan menggunakan struktur IF-Then maupun Select Case
Tombol apa saja yg akan di"tempelkan pada MsgBox" dapat ditentukan melalui
argument / parameter = 'Button'
Tiap Tombol punya nilai (konstanta) tertentu, *bisa dilihat di Help Msgbox*
(salinannya saya lampirkan di sinihh..)
Nilai sebuah Button berupa datatype Long, tetapi anda akan lebih mudah
mengingat nilai
tsn dengan menggunakan constants nya misalnya vbYes, vbOK, vbNo, vbCancel
dsb..
Maaf kalau ternyata bukan seperti itulah yg sebenarnya ditanyakan..
'--------------------
Sub OK_Or_Cancel()
Dim ProsesSelanjutnya As Long, Pjlsn As String
Pjlsn = vbCr & vbCr & "OK" & vbTab & " = Lanjutkan Proses" & vbCr
Pjlsn = Pjlsn & "CANCEL" & vbTab & " = Batalkan Proses"
ProsesSelanjutnya = MsgBox("APA mau dilanjutkan, APA mau dibatalkan?" & _
Pjlsn, vbQuestion + vbOKCancel, "Minta Pendapat User")
*If ProsesSelanjutnya = vbOK* Then
MsgBox "Melajutkan Proses; coding ditulis di blok ini"
' bagian ini dituliskan coding proses yg dikehendaki
*ElseIf ProsesSelanjutnya* *= vbCancel* Then
MsgBox "Anda Pilih Membatalkan proses, Program di akhiri"
' dibagian ini tidak ada coding, selain memaksa
' program (sub) mengakhiri prosesnya
Exit Sub
*End If*
End Sub
'--------------------
karena hanya ada dua kemungkinan, maka statement :
*ElseIf ProsesSelanjutnya* *= vbCancel, *
sebetulnya bisa diganti dengan : *Else* saja.
di situ TIDAK digunakan* ELSE* dengan maksod hanya untuk
menunjukkan/menegaskan
penggunaan variable *'Proses selanjutnya'* (yg mewakili *Kemungkinan N**ilai
Button*
*yg diceklik*) dan *Aktual nilai Button yg terjadi*.
2011/5/22 Reza 2002 <[email protected]>
>
>
> Salam mas Mr.Kid....
> Akhirnya setelah ngulik2 dan ngubek2 formulanya Mr.Kid dan dimodifikasi
> sana-sini VBnya, selesai juga Point of Sales yg saya inginkan... Makasi
> banyak mas Mr.Kid... d^^b
>
> Hanya ada sedikit lagi yg ingin saya tanyakan nih.
> 1. Jika data transaksi di input tidak di baris pertama, tapi di baris kedua
> akan muncul msgbox "data ada yg kurang". Apakah harus diinput sesuai baris
> (baris 1, lalu baris 2, dst)? Mengapa tidak bisa sembarang (baris 1 kosong,
> baris 2 input)?
>
> 2. saya memodifikasi tombol VB mas Mr.Kid sehingga bisa melakukan 2 inputan
> di sheet yg sama dalam cell range yg berbeda dengan menggunakan satu tombol
> "simpan" saja. Jadi seperti ini VB tombol simpannya:
>
> Private Sub CommandButton3_Click()
> Dim lOffset As Long
> Dim rngData As Range
> Dim sMsg As String
> Dim lNewRec As Long
> Dim shtTrn As Worksheet
>
> Application.ScreenUpdating = False
> Application.EnableEvents = False
>
> 'LIST-TRX
> Set shtTrn2 = Sheets("ListTrx")
> shtTrn2.Visible = xlSheetVisible
>
> ActiveSheet.Calculate
> lOffset = Range("L3").Value
>
> 'copy formula validasi
> lNewRec = Range("L5").Value
> If lNewRec > 0 Then
> Range("O3:W3").Copy Range("O6").Resize(lNewRec)
> ActiveSheet.Calculate
> End If
>
> 'cek hasil validasi
> Set rngData = Range("O5")
>
> If rngData.Value <> 0 Then
> rngData.Offset(1, 2).CurrentRegion.Copy
> shtTrn2.Range("a1").Offset(lOffset).PasteSpecial
> xlPasteValuesAndNumberFormats
>
> sMsg = "Terima Kasih"
> lOffset = vbInformation
> Range("B6:B10").ClearContents
> Range("O6:W10").ClearContents
> Else
> sMsg = "Transaksi Batal?"
> lOffset = vbCritical
> End If
> ActiveSheet.Calculate
> MsgBox sMsg, lOffset, "Kode Transaksi"
>
> shtTrn2.Visible = xlSheetVeryHidden
>
>
> 'CUST-TRX
> Set shtTrn3 = Sheets("CustTrx")
> shtTrn3.Visible = xlSheetVisible
>
> ActiveSheet.Calculate
> lOffset = Range("M3").Value
>
> 'copy formula validasi
> lNewRec = Range("M5").Value
> If lNewRec > 0 Then
> Range("O12:Y12").Copy Range("O14").Resize(lNewRec)
> ActiveSheet.Calculate
> End If
> 'cek hasil validasi
> Set rngData = Range("O13")
>
> If rngData.Value <> 0 Then
> rngData.Offset(1, 2).CurrentRegion.Copy
> shtTrn3.Range("a1").Offset(lOffset).PasteSpecial
> xlPasteValuesAndNumberFormats
>
> sMsg = "Terima Kasih"
> lOffset = vbInformation
> Range("B14:B21").ClearContents
> Range("E14:E21").ClearContents
> Range("O14:Y21").ClearContents
>
> Else
> sMsg = "TIDAK ADA CUSTOMER?"
> lOffset = vbCritical
> End If
> ActiveSheet.Calculate
> MsgBox sMsg, lOffset, "Kode Customer"
>
> shtTrn3.Visible = xlSheetVeryHidden
>
> Application.ScreenUpdating = True
> Application.EnableEvents = True
>
> End Sub
>
> Problem VB yg terjadi sbb: jika pada kolom inputan List Transaksi belum di
> input (masih kosong) dan tombol "simpan" diklik akan keluar message box
> "Transaksi Batal?". Ketika tombol OK diklik, proses VB akan berlanjut ke
> inputan Customer Transaksi. Jika kolom Customer Transaksi sudah diinput,
> proses akan berlanjut ke akhir dan data inputan kolom Customer Trx
> tersimpan.
>
> Pertanyaannya: bagaimana caranya memunculkan mesage box dengan pilihan OK
> untuk lanjut ke proses berikutnya dan cancel untuk membatalkan proses VB yg
> terjadi setelah tombol "simpan" di klik jika salah satu kolom input belum
> terisi? Seperti apa kode IF...THEN...nya? Mohon pencerahan lagi nih mas...
>
> Makasi atas perhatiannya dan pencerahannya,
>
> Wassalam
>
>
>
MsgBox Function.rar
Description: application/rar

