2. PENGAMBILAN
KEPUTUSAN
Seringkali kita dihadapkan pada masalah untuk
mengambil keputusan terhadap dua alternatif atau
bahkan lebih. Kita bisa mengambil keputusan oleh sutu
kondisi yang kita evaluasi terlebih dahulu. Hal serupa
juga dilakukan oleh komputer. Untuk keperluan ini VBA
menyediakan dua macam pernyataan, yaitu:
1. IF -THEN
2. SELECT CASE
3. IF…THEN DAN IF …THEN
…ELSE
If … then adalah suatu perintah penyeleksian yang akan dilakukan bila
memenuhi kondisi, dengan beberapa syntax sebagai berikut:
Untuk 1 kondisi 1 pernyataan
If <condition> then [statement]
Contoh:
If A > 10 Then A = A + 1
Untuk 1 kondisi tapi beberapa pernyataan dapat ditulis dalam 1 baris
di pisah dengan colon (:)
If <condition> then [statement_1]: [Satatement_2]: [Statement_3]:[statement_n]
Atau
If <condition> then :
Contoh
[Statement_1] If A > 10 Then A = A + 1 : B = B + A : C = C + B
[Statement_2]
[Statement_3]
[Statement_n]
EndIf
4. Untuk 1 kondisi dan 2 pernyataan Contoh:
If A > 10 Then
If <kondisi> then B=B+1
[pernyataan1] Else
Else B=B-1
[pernyataan2] End If
End If
Untuk bebrapa kondisi dan beberapa Contoh:
pernyataan IF NA>=80 then
If <kondisi1> then Hrf=“Lulus Amat baik ”
[Pernyataan1] ElseIF NA>=70 then
ElseIf <kondisi2> then Hrf=“Lulus baik ”
[pernyataan2] ElseIF NA>=60 then
… Hrf=“Lulus Cukup”
… ElseIF NA>=50 then
ElseIf <kondisike-n> then Hrf=“Lulus Kurang
[pernyataan ke-n ] Else
Else Hrf=“Tidak Lulus”
[pernyataan ke n+1] End IF
End If
5. CONTO
H Sub IfBanyakKondisi()
IF Worksheets(1).Activate
Cells.ClearContents
THEN Dim x As Byte
Cells(1, 1).Value = "Angka"
BANYA Cells(1, 2).Value = "Huruf“
For x = 1 To 5
K Cells(1 + x, 1).Value = x
If x = 1 Then
KONDI Cells(x + 1, 2) = "Satu"
SI ElseIf x = 2 Then
Cells(x + 1, 2) = "Dua"
PADA ElseIf x = 3 Then
Cells(x + 1, 2) = "Tiga"
VBA ElseIf x = 4 Then
Cells(x + 1, 2) = "Empat"
Else
Cells(x + 1, 2) = "Lima"
End If
Next x
End Sub
6. BUATLAH
TAMPILAN DI
EXCEL NAMA
HARI DALAM Bulan ke Nama Bulan
SEMINGGU DAN 1 Januari
NAMA BULAN
DALAM SETAHUN 2 Pebruari
GUNAKAN 3 Maret
PENGULANAN
DAN 4 April
KONDISIONAL IF- 5 Mei
THEN
Hari ke Nama Hari 6 Juni
1 Ahad 7 Juli
2 Senin 8 Agustus
3 Selasa
9 September
4 Rabu
10 Oktober
5 Kamis
6 Jum’at 11 Nopember
7 Sabtu 12 Desember
7. SELECT CASE…
Menyeleleksi satu dari beberapa Select Case Kinerja
pernyataan yang bergantung Case 1
pada suatu ekpresi
Bonus = Gaji* 0.1
Syntax Case 2
Bonus = Gaji* 0.2
Select Case testexpression
Case 3
[Case expressionlist-n
[statements-n]] ... Bonus = Gaji* 0.3
[Case Else Case 4
[elsestatements]] Bonus = Gaji* 0.5
Case Is > 4
End Select Bonus = Gaji* 1
Case Else
Bonus = 0
End Select
8. CONTOH PENGGUNAN
SELECT CASE PADA VBA
Sub LatSelectCase()
Worksheets(1).Activate Case 5
Dim A As Byte Cells(1 + A, 2).Value = "Lima"
Case 6
For A = 1 To 10
Cells(1 + A, 2).Value = "Enam"
Cells(1 + A, 1).Value = A
Case 7
Select Case A Cells(1 + A, 2).Value = "Tujuh"
Case 1 Case 8
Cells(1 + A, 2).Value = "Satu" Cells(1 + A, 2).Value =
Case 2 "Delapan"
Cells(1 + A, 2).Value = "Dua" Case 9
Case 3 Cells(1 + A, 2).Value =
Cells(1 + A, 2).Value = "Tiga" "Sembilan"
Case 10
Case 4
Cells(1 + A, 2).Value =
Cells(1 + A, 2).Value =
"Sepuluh"
"Empat" End Select
9. Sub Pesan2()
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Mau melanjutkan?" ' mendefinisikan pesan.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' mendefinisikan
tombol.
Title = " Demonstarsi MsgBox " ' mendefinisikan Judul Pesan (Title).
Help = "DEMO.HLP" ' Define Help file.
Ctxt = 1000 'Definisi Topik"
Response = MsgBox(Msg, Style, Title, Help, Ctxt) 'penampilan pesan
If Response = vbYes Then ' pengguna memilih tombol Yes.
MyString = "Yes" ' melakukan beberapa aksi.
Call pesan1 ' melakukan pemanggilan sub/prosedut pesan1
Else ' pengguna memilih tombol No.
MyString = "No" ' melakukan beberapa aksi
End If
End Sub
10. TUGAS LATIHAN 5
Ubahlah Progeram kondisional If Then pada program
sebelumnya dengan menggunakan Select Case
Buatlah program untuk mengkonversi suhu dengan
Pilihan F,R,K
Gunakan pengulangan, kondisional dan msgbox dan input box
11. Sub NamaRange1()
ActiveWorkbook.Names.Add Name:="Tabel1",_
RefersToR1C1:="=Sheet1!R1C1:R11C2"
Range("Tabel1").Select
With Selection
.Font.Bold = True
.Font.ColorIndex = 7
.HorizontalAlignment = xlCenter
.Borders.LineStyle = xlContinuous
.Interior.ColorIndex = 10
End With
Cells(1, 1).Activate
End Sub