Bahasa macro dengan huruf kapital akan

Mencegah menutup dari simbol X
Private Sub UserForm_QueryClose(Cancel As Integer, _
CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
MsgBox "Silahkan klik login"
End If
End Sub

Input database
Private Sub CBOEdit_Click()
Set Macro = Sheets("Database")
Set EditMacro = Macro.Range("A2:B1000")
Set c = EditMacro.Find(TXTNamaRuas.Value, _
LookIn:=xlValues)
c.Offset(0, -1).Value = TXTNORuas.Value
c.Offset(0, 0).Value = TXTNamaRuas.Value
c.Offset(0, 1).Value = TXTpengenalpangkal.Value
c.Offset(0, 2).Value = TXTpengenalujung.Value
c.Offset(0, 3).Value = TXTpanjangruas.Value
c.Offset(0, 4).Value = TXTlebarruas.Value

c.Offset(0, 5).Value = CBOkecamatan.Value
MsgBox "Data telah diedit"
End Sub

Private Sub UserForm_Initialize()
With CBOkecamatan
.AddItem "Aluh-Aluh"
.AddItem "Aranio"
.AddItem "Astambul"
.AddItem "Beruntung Baru"
.AddItem "Gambut"
.AddItem "Karang Intan"
.AddItem "Kertak Hanyar"
.AddItem "Martapura Barat"
.AddItem "Martapura Kota"
.AddItem "Martapura Timur"
.AddItem "Mataraman"
.AddItem "Paramasan"
.AddItem "Pengaron"
.AddItem "Sambung Makmur"

.AddItem "Simpang Empat"
.AddItem "Sungai Pinang"
.AddItem "Sungai Tabuk"
.AddItem "Tatah Makmur"
.AddItem "Telaga Bauntung"
End With
End Sub

Private Sub TBLSimpan_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("database")

'menemukan baris kosong pada database
iRow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row

'check untuk sebuah NamaRuas
If Trim(Me.TXTNamaRuas.Value) = "" Then
Me.TXTNamaRuas.SetFocus

MsgBox "Masukan Nama Ruas terlebih dahulu.."
Exit Sub
End If

'copy data ke database
ws.Cells(iRow, 1).Value = Me.TXTNORuas.Value
ws.Cells(iRow, 2).Value = Me.TXTNamaRuas.Value
ws.Cells(iRow, 3).Value = Me.TXTpengenalpangkal.Value
ws.Cells(iRow, 4).Value = Me.TXTpengenalujung.Value
ws.Cells(iRow, 5).Value = Me.TXTpanjangruas.Value
ws.Cells(iRow, 6).Value = Me.TXTlebarruas.Value
ws.Cells(iRow, 7).Value = Me.CBOkecamatan.Value

Me.TXTNamaRuas.SetFocus

'clear data
Me.TXTNORuas.Value = ""
Me.TXTNamaRuas.Value = ""
Me.TXTpengenalpangkal.Value = ""
Me.TXTpengenalujung.Value = ""

Me.TXTpanjangruas.Value = ""
Me.TXTlebarruas.Value = ""
Me.CBOkecamatan.Value = ""
Me.TXTNamaRuas.SetFocus

'Simpan data
Application.ActiveWorkbook.Save
End Sub
Private Sub CBOtutup_Click()
Unload Me
End Sub
Private Sub TBLSimpan_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single,
ByVal Y As Single)
With TBLSimpan
.BackColor = vbBlue
.ForeColor = vbWhite
End With

End Sub
Private Sub CBOEdit_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal

Y As Single)
With CBOEdit
.BackColor = vbRed
.ForeColor = vbBlack
End With
End Sub
Private Sub CBOtutup_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single,
ByVal Y As Single)
With CBOtutup
.BackColor = vbGreen
.ForeColor = vbBlack
End With
End Sub
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single,
ByVal Y As Single)
With TBLSimpan
.BackColor = &H8000000F
.ForeColor = RGB(0, 0, 0)
End With
With CBOEdit

.BackColor = &H8000000F
.ForeColor = RGB(0, 0, 0)
End With
With CBOtutup
.BackColor = &H8000000F

.ForeColor = RGB(0, 0, 0)
End With
End Sub

Inputdata pekerjaan
Private Sub InputData_Click()

End Sub

Private Sub CBOupload_Click()
Dim sGb As String, pic As Picture
Dim ws As Worksheet
Set ws = Sheets("databasepek")


sGb = Application.GetOpenFilename _
("Gambar (*.gif; *.jpg; *.bmp; *.tif), *.gif; *.jpg; *.bmp; *.tif", _
, "Pilih Gambar untuk diinsert")

If sGb = "False" Then Exit Sub

Set pic = ws.Pictures.Insert(sGb)
With pic
.Height = ActiveCell.Height + 100
.Width = ActiveCell.Width + 50

.Top = ActiveCell.Top - 150
.Left = ActiveCell.Left
End With
End Sub
Private Sub Worksheet_SelectionChange(ByValTarget As Range)
End Sub

Private Sub Label14_Click()


End Sub
Private Sub TXTnilai_Change()
On Error GoTo abc
TXTnilai = Format(TXTnilai * 1, "#,##0")
Exit Sub

abc:
TXTnilai = ""
End Sub
Private Sub UserForm_Initialize()
With CBOkec
.AddItem "Aluh-Aluh"
.AddItem "Aranio"
.AddItem "Astambul"
.AddItem "Beruntung Baru"
.AddItem "Gambut"

.AddItem "Karang Intan"
.AddItem "Kertak Hanyar"
.AddItem "Martapura Barat"

.AddItem "Martapura Kota"
.AddItem "Martapura Timur"
.AddItem "Mataraman"
.AddItem "Paramasan"
.AddItem "Pengaron"
.AddItem "Sambung Makmur"
.AddItem "Simpang Empat"
.AddItem "Sungai Pinang"
.AddItem "Sungai Tabuk"
.AddItem "Tatah Makmur"
.AddItem "Telaga Bauntung"
End With
With CBOdana
.AddItem "APBD"
.AddItem "APBD-P"
.AddItem "APBN"
.AddItem "DAK"
.AddItem "DAK TAMBAHAN"
End With
With CBOpemeliharaan

.AddItem "90"
.AddItem "180"

End With
End Sub

Private Sub TBLSimpan_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("databasepek")

'menemukan baris kosong pada database
iRow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row

'check untuk kolom yang belum diisi
If Trim(Me.CBOkec.Value) = "" Then
Me.CBOkec.SetFocus
MsgBox "Lengkapi Isian Data terlebih dahulu.."
Exit Sub

End If

'copy data ke database
ws.Cells(iRow, 1).Value = Me.TXTta.Value
ws.Cells(iRow, 2).Value = Me.TXTpaket.Value
ws.Cells(iRow, 3).Value = Me.CBOdana.Value
ws.Cells(iRow, 4).Value = Me.CBOkec.Value

ws.Cells(iRow, 5).Value = Me.TXTnilai.Value
ws.Cells(iRow, 6).Value = Me.TXTkontraktor.Value
ws.Cells(iRow, 7).Value = Me.TXTtgl.Value
ws.Cells(iRow, 8).Value = Me.TXTwkt.Value
ws.Cells(iRow, 10).Value = Me.CBOpemeliharaan.Value
ws.Cells(iRow, 12).Value = Me.TXTproduk.Value
ws.Cells(iRow, 13).Value = Me.TXTpanjang.Value
ws.Cells(iRow, 14).Value = Me.TXTlebar.Value
ws.Cells(iRow, 15).Value = Me.TXTpenandaaw.Value
ws.Cells(iRow, 16).Value = Me.TXTpenandaak.Value
Me.TXTta.SetFocus

'clear data
Me.TXTta.Value = ""
Me.TXTpaket.Value = ""
Me.CBOdana.Value = ""
Me.CBOkec.Value = ""
Me.TXTnilai.Value = ""
Me.TXTkontraktor.Value = ""
Me.TXTtgl.Value = ""
Me.TXTwkt.Value = ""
Me.CBOpemeliharaan.Value = ""
Me.TXTproduk.Value = ""
Me.TXTpanjang.Value = ""

Me.TXTlebar.Value = ""
Me.TXTpenandaaw.Value = ""
Me.TXTpenandaak.Value = ""
Me.TXTta.SetFocus

ActiveWorkbook.Worksheets("databasepek").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("databasepek").Sort.SortFields.Add Key:=Range( _
"D4:D201"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("databasepek").Sort
.SetRange Range("A3:Q201")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Simpan data
Application.ActiveWorkbook.Save
End Sub

Private Sub InputData_Click()

End Sub

Short
Private Sub Button7_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("pemanggildatabasekec")
If ws.Range("H3") = "Aluh-Aluh" Then
Sheets("databaseperkec").Select
Range("A3:Q20").Select
Selection.ClearContents
Sheets("databasepek (2)").Select
Selection.AutoFilter
ActiveSheet.Range("$A$3:$Q$201").AutoFilter Field:=4, Criteria1:= _
"Aluh-Aluh"
Range("A4:Q10").Select
Selection.Copy
Sheets("databaseperkec").Select
Range("A3").Select
ActiveSheet.Paste
Sheets("databasepek (2)").Select
Application.CutCopyMode = False
Selection.AutoFilter
Sheets("databaseperkec").Select
ElseIf ws.Range("H3") = "Aranio" Then

Sheets("databaseperkec").Select
Range("A3:Q10").Select
Selection.ClearContents
Sheets("databasepek (2)").Select
Selection.AutoFilter
ActiveSheet.Range("$A$3:$Q$201").AutoFilter Field:=4, Criteria1:="Aranio"
Range("A11:Q16").Select
Selection.Copy
Sheets("databaseperkec").Select
Range("A3").Select
ActiveSheet.Paste
Sheets("databasepek (2)").Select
Application.CutCopyMode = False
Selection.AutoFilter
Sheets("databaseperkec").Select
Else
End If
End Sub

Cari data
Private Sub CmdiPa1_Click()
'On Error Resume Next
Set IpAoNE = Sheets("Sheet1")

Set regiPaOne = IpAoNE.Range("Data")
Set rgAdvFilter = IpAoNE.Range("I1:I2")
If IpAoNE.Range("A3").Value = "" Then
MsgBox "Tidak ada data dalam database"
Exit Sub
ElseIf txtiPa.Value = "" Then
MsgBox "Textbox pencarian kosong"
Exit Sub
End If
With IpAoNE.Range("Nama")
Set c = .Find(txtiPa.Value, LookIn:=xlValues)
If c Is Nothing Then
MsgBox "Nama pelanggan " & txtiPa.Value & " tidak ada", _
vbOKOnly + vbInformation, "Nama Pelanggan Tidak Ada"
Exit Sub
Else
IpAoNE.Range("I2").Value = "*" & txtiPa.Value & "*"
regiPaOne.AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=rgAdvFilter
Call CmdiPa2_Click
End If
End With
If IpAoNE.FilterMode Then
IpAoNE.ShowAllData
End If

End Sub
Private Sub CmdiPa2_Click()
Set IpAoNE = Sheets("Sheet1")
If IpAoNE.Range("A3").Value = "" Then
MsgBox "Tidak ada data dalam database"
Exit Sub
End If
listiPa.Clear
With listiPa
.AddItem
.List(.ListCount - 1, 0) = "No"
.List(.ListCount - 1, 1) = "Nama"
.List(.ListCount - 1, 2) = "Jenis"
.List(.ListCount - 1, 3) = "Usia"
.List(.ListCount - 1, 4) = "Kota"
.ColumnWidths = 40 & ";" & 100 & ";" & 60 & ";" & 60 & ";" & 70
End With
With IpAoNE
Set rgTampil = IpAoNE.Range("Nama"). _
SpecialCells(xlCellTypeVisible)
For Each sTampil In rgTampil
With listiPa
.AddItem
.List(.ListCount - 1, 0) = sTampil.Offset(0, -1).Value
.List(.ListCount - 1, 1) = sTampil.Value

.List(.ListCount - 1, 2) = sTampil.Offset(0, 1).Value
.List(.ListCount - 1, 3) = sTampil.Offset(0, 3).Value
.List(.ListCount - 1, 4) = sTampil.Offset(0, 2).Value
End With
Next sTampil
End With
listiPa.SetFocus
End Sub

With listiPa
.AddItem
.List(.ListCount - 1, 0) = "No"
.List(.ListCount - 1, 1) = "Nama Ruas"
.List(.ListCount - 1, 2) = "T.Pangkal"
.List(.ListCount - 1, 3) = "T.Ujung"
.List(.ListCount - 1, 4) = "Panjang(Km)"
.List(.ListCount - 1, 5) = "Lebar(m)"
.List(.ListCount - 1, 6) = "Kecamatan"
.ColumnWidths = 25 & ";" & 100 & ";" & 60 & ";" & 60 & ";" & 70
End With

With ActiveWorkbook.Worksheets("Dataruas")
Set rgTampil = Range("A2:G1000"). _
SpecialCells(xlCellTypeVisible)
For Each sTampil In rgTampil
With listiPa
.AddItem
.List(.ListCount - 1, 0) = sTampil.Offset(0, 1).Value
.List(.ListCount - 1, 1) = sTampil.Offset(0, 2).Value
.List(.ListCount - 1, 2) = sTampil.Offset(0, 3).Value
.List(.ListCount - 1, 3) = sTampil.Offset(0, 4).Value
.List(.ListCount - 1, 4) = sTampil.Offset(0, 5).Value
.List(.ListCount - 1, 5) = sTampil.Offset(0, 6).Value
.List(.ListCount - 1, 6) = sTampil.Offset(0, 7).Value
End With
Next sTampil
End With
listiPa.SetFocus
End With
End If
End Sub

Private Sub txtNama_Change()
Set wsDtbsPlgn = Sheets("Sheet1")
Set rgDtbsPlgn = wsDtbsPlgn.Range("Sheet1")
Set rgAdvFilter = wsDtbsPlgn.Range("H2:H3")
With wsDtbsPlgn.Range("NamaSiswa")
Set c = .Find(txtNama.Value, LookIn:=xlValues)
If c Is Nothing Then
MsgBox "Nama " & txtNama.Value & " tidak ditemukan", _
vbOKOnly, "Nama Pelanggan Tidak Ada"
listCari.Clear
txtNama.Value = ""
txtNama.SetFocus
Exit Sub
Else
wsDtbsPlgn.Range("H3").Value = "*" & txtNama.Value & "*"
rgDtbsPlgn.AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=rgAdvFilter
Call TampilkanSemua
End If
End With
If wsDtbsPlgn.FilterMode Then
wsDtbsPlgn.ShowAllData
End If
End Sub

Listbox di excel
https://www.youtube.com/watch?v=iKwaRkaAdUE

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set ExcelVBA = Sheets("Sheet2")
ExcelVBA.Range("B2").Value = "*" & ExcelVBA.Range("B2").Value & "*"
ExcelVBA.Range("A5:C11").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=ExcelVBA.Range("B1:B2")
End Sub

Private Sub txtNama_Change()
Set wsDtbsPlgn = Sheets("Sheet1")
Set rgDtbsPlgn = wsDtbsPlgn.Range("Sheet1")
Set rgAdvFilter = wsDtbsPlgn.Range("H2:H3")
With wsDtbsPlgn.Range("NamaSiswa")
Set c = .Find(txtNama.Value, LookIn:=xlValues)
If c Is Nothing Then
MsgBox "Nama " & txtNama.Value & " tidak ditemukan", _
vbOKOnly, "Nama Pelanggan Tidak Ada"
listCari.Clear
txtNama.Value = ""
txtNama.SetFocus
Exit Sub
Else
wsDtbsPlgn.Range("H3").Value = "*" & txtNama.Value & "*"

rgDtbsPlgn.AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=rgAdvFilter
Call TampilkanSemua
End If
End With
If wsDtbsPlgn.FilterMode Then
wsDtbsPlgn.ShowAllData
End If
End Sub