-------------------------------------
EXCEL & VBA TUTORIAL : FORM DOKUMEN
-------------------------------------
Option Explicit
Dim FileDokumen As String
Private Sub CBTIPE_Change()
Me.TXTALAMAT.value = ""
End Sub
Private Sub CMDADD_Click()
Dim DBDOKUMEN As Object
Dim DataDokumen As String
DataDokumen = Me.TXTNODOKUMEN.value
Set DBDOKUMEN = Sheet1.Range("A1000000").End(xlUp)
If Me.TXTTGL.value = "" _
Or Me.TXTNODOKUMEN.value = "" _
Or Me.TXTNAMADOKUMEN.value = "" _
Or Me.CBJENIS.value = "" _
Or Me.CBTIPE.value = "" _
Or Me.TXTALAMAT.value = "" Then
Call MsgBox("Harap isi terlebih dahulu data dokumen", vbInformation, "Dokumen")
Else
DBDOKUMEN.Offset(1, 0).value = "=ROW()-ROW($A$5)"
DBDOKUMEN.Offset(1, 1).value = Format(CDate(Me.TXTTGL.value), "MM/DD/YYYY")
DBDOKUMEN.Offset(1, 2).value = Me.TXTNODOKUMEN.value
DBDOKUMEN.Offset(1, 3).value = Me.TXTNAMADOKUMEN.value
DBDOKUMEN.Offset(1, 4).value = Me.CBJENIS.value
DBDOKUMEN.Offset(1, 5).value = Me.CBTIPE.value
DBDOKUMEN.Offset(1, 6).value = Me.TXTALAMAT.value
On Error Resume Next
FileCopy FileDokumen, FORMUTAMA.TXTFOLDER.value & DataDokumen & Me.CBTIPE.value
Call Hitungrekap
Call AMBILDATA
Call MsgBox("Dokumen berhasil ditambah", vbInformation, "Dokumen")
Me.TXTTGL.value = ""
Me.TXTNODOKUMEN.value = ""
Me.TXTNAMADOKUMEN.value = ""
Me.CBJENIS.value = ""
Me.CBTIPE.value = ""
Me.TXTALAMAT.value = ""
End If
End Sub
Private Sub CMDTGL_Click()
Call AdvancedCalendar
End Sub
Private Sub CMDUPDATE_Click()
On Error GoTo EXCELVBA
Dim DBDOKUMEN As Object
Dim DataDokumen As String
DataDokumen = Me.TXTNODOKUMEN.value
Set DBDOKUMEN = Sheet1.Range("A6:A1000000").Find(What:=FORMUTAMA.TXTNOMOR.value,
LookIn:=xlValues)
DBDOKUMEN.Offset(0, 1).value = Format(CDate(Me.TXTTGL.value), "MM/DD/YYYY")
DBDOKUMEN.Offset(0, 2).value = Me.TXTNODOKUMEN.value
DBDOKUMEN.Offset(0, 3).value = Me.TXTNAMADOKUMEN.value
DBDOKUMEN.Offset(0, 4).value = Me.CBJENIS.value
DBDOKUMEN.Offset(0, 5).value = Me.CBTIPE.value
DBDOKUMEN.Offset(0, 6).value = Me.TXTALAMAT.value
On Error Resume Next
FileCopy FileDokumen, FORMUTAMA.TXTFOLDER.value & DataDokumen & Me.CBTIPE.value
Call Hitungrekap
Call AMBILDATA
Call MsgBox("Dokumen berhasil diubah", vbInformation, "Update Dokumen")
Me.TXTTGL.value = ""
Me.TXTNODOKUMEN.value = ""
Me.TXTNAMADOKUMEN.value = ""
Me.CBJENIS.value = ""
Me.CBTIPE.value = ""
Me.TXTALAMAT.value = ""
FORMUTAMA.TABELDATA.value = ""
FORMUTAMA.TXTNOMOR.value = ""
Unload Me
Exit Sub
EXCELVBA:
Call MsgBox("Pastikan data dokumen tersedia", vbInformation, "Data Dokumen")
End Sub
Private Sub CMDUPLOAD_Click()
On Error GoTo Salah
Dim JumlahGambar As Integer
If Me.TXTNODOKUMEN.value = "" Then
Call MsgBox("Isi terlebih dahulu Nomor Dokumen", vbInformation, "Nomor Dokumen")
Exit Sub
End If
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
JumlahGambar = Application.FileDialog(msoFileDialogOpen).Show
If JumlahGambar <> 0 Then
FileDokumen = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Me.TXTALAMAT.value = FORMUTAMA.TXTFOLDER.value & Me.TXTNODOKUMEN.value &
Me.CBTIPE.value
End If
Exit Sub
Salah:
Call MsgBox("Tipe file tidak mendukung untuk ditampilkan, pastikan pilih file
dengan tipe *.Jpg*, atau *.Jpeg*", vbInformation, "Simpan Gambar")
End Sub
Private Sub UserForm_Initialize()
Me.BackColor = RGB(41, 52, 71)
With CBTIPE
.AddItem ".Pdf"
.AddItem ".docx"
.AddItem ".xlsx"
.AddItem ".jpg"
End With
With CBJENIS
.AddItem "Penting"
.AddItem "Biasa"
.AddItem "Rahasia"
End With
End Sub
Private Sub AMBILDATA()
Dim DBDOKUMEN As Long
Dim irow As Long
irow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
DBDOKUMEN = Application.WorksheetFunction.CountA(Sheet1.Range("A6:A900000"))
If DBDOKUMEN = 0 Then
FORMUTAMA.TABELDATA.RowSource = ""
Else
FORMUTAMA.TABELDATA.RowSource = "DATADOKUMEN!A6:G" & irow
End If
End Sub