0% found this document useful (0 votes)
65 views6 pages

Form Utama

This document contains code for an Excel VBA application that manages letter templates and recipients. It includes subroutines for printing letters, deleting data, updating data, searching, and previewing letters. The code handles user input, validates data, and updates forms and tables on the worksheet.

Uploaded by

uzix bogang
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views6 pages

Form Utama

This document contains code for an Excel VBA application that manages letter templates and recipients. It includes subroutines for printing letters, deleting data, updating data, searching, and previewing letters. The code handles user input, validates data, and updates forms and tables on the worksheet.

Uploaded by

uzix bogang
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

------------------------------------------

CODING FORM UTAMA - EXCEL & VBA TUTORIAL


------------------------------------------

Option Explicit

Private Sub CMDCETAK_Click()


Dim X As Integer
If Me.LBTOTAL.Caption = 0 Then
Call MsgBox("Tidak ada penerima surat yang akan di cetak", vbInformation, "Penerima
Tidak Ada")
Else
Sheet3.Range("O6").Value = 0
Select Case MsgBox("Anda akan mencetak surat" _
& vbCrLf & "Apakah anda yakin?" _
, vbYesNo Or vbQuestion Or vbDefaultButton1, "Cetak Surat")
Case vbNo
Exit Sub
Case vbYes
End Select
For X = 1 To WorksheetFunction.CountA(Sheet1.Range("A6:A100000"))
Sheet3.Range("O6").Value = Sheet3.Range("O6").Value + 1
Sheet3.PrintOut
Next
Call MsgBox("Cetak Surat Telah Selesai", vbInformation, "Penerima Tidak Ada")
Sheet3.Range("O6").Value = 0
End If
End Sub

Private Sub CMDDELETE_Click()


If Me.TXTNOMOR.Value = "" Then
Call MsgBox("Pilih data pada tabel data", vbInformation, "Hapus Data")
Else
Select Case MsgBox("Anda akan menghapus data" _
& vbCrLf & "Apakah anda yakin?" _
, vbYesNo Or vbQuestion Or vbDefaultButton1, "Hapus data")
Case vbNo
Exit Sub
Case vbYes
End Select
Me.TABELSURAT.RowSource = ""
Me.TXTNOMOR.Value = ""
Sheet2.Select
Selection.EntireRow.Delete
Call AmbilData

Sheet2.Select
End If

End Sub

Private Sub CMDDELETE1_Click()


If Me.TXTNOMOR1.Value = "" Then
Call MsgBox("Pilih data pada tabel data", vbInformation, "Hapus Data")
Else
Select Case MsgBox("Anda akan menghapus data" _
& vbCrLf & "Apakah anda yakin?" _
, vbYesNo Or vbQuestion Or vbDefaultButton1, "Hapus data")
Case vbNo
Exit Sub
Case vbYes
End Select
Me.TABELSURAT.RowSource = ""
Me.TXTNOMOR.Value = ""
Sheet1.Select
Selection.EntireRow.Delete
Call AmbilDataPenerima
Me.LBTOTAL.Caption = Me.TABELPENERIMA.ListCount
Sheet1.Select
End If
Me.TXTNOMORSURAT.Value = ""
Me.TXTPENERIMA.Value = ""
End Sub

Private Sub CMDEXIT_Click()


Select Case MsgBox("Anda akan keluar dari aplikasi" _
& vbCrLf & "Apakah anda yakin?" _
, vbYesNo Or vbQuestion Or vbDefaultButton1, "Keluar")
Case vbNo
Exit Sub
Case vbYes
End Select
ThisWorkbook.Save
ThisWorkbook.Close
End Sub

Private Sub CMDPREVIEW_Click()


On Error GoTo EXCELVBA
Dim Gmb_Range As Range
Dim SH_Temp As Worksheet
Dim CH_Temp As Chart
Dim PicTemp As Picture
Application.ScreenUpdating = False
Sheet3.Range("O6").Value = 1
Set Gmb_Range = Sheet3.Range("CEKSURAT")

Set SH_Temp = Worksheets.Add


Charts.Add

ActiveChart.Location Where:=xlLocationAsObject, Name:=SH_Temp.Name


Set CH_Temp = ActiveChart
Gmb_Range.CopyPicture Appearance:=xlScreen, Format:=xlPicture
CH_Temp.Paste
Set PicTemp = Selection
With CH_Temp.Parent
.Width = 352
.Height = 480
End With
CH_Temp.Export Filename:="C:\DATABASE\DATASURAT\" & "PREVIEW" & ".jpeg"
Me.LBGAMBAR.Caption = "C:\DATABASE\DATASURAT\" & "PREVIEW" & ".jpeg"
Me.Image1.Picture = LoadPicture(Me.LBGAMBAR.Caption)

Application.DisplayAlerts = False
SH_Temp.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Call MsgBox("File Preview telah tersimpan di C:\DATABASE\DATASURAT\",
vbInformation, "Simpan Barcode")
Exit Sub
EXCELVBA:
Call MsgBox("Harap buat Folder DATABASE di Drive C:\ lalu buat nama folder Database
dan Datasurat di dalamnya", vbCritical, "Folder Tidak Ditemukan")
End Sub

Private Sub CMDRESET_Click()


Me.TXTNOMOR.Value = ""
Me.TXTCARI.Value = ""
Call AmbilData

End Sub

Private Sub CMDSAVE_Click()


ThisWorkbook.Save
End Sub

Private Sub CMDSTART_Click()


Me.MultiPage1.Value = 1
End Sub

Private Sub CMDUPDATE_Click()


If Me.TXTNOMOR.Value = "" Then
Call MsgBox("Harap pilih data yang akan diupdate", vbInformation, "Update Data")
Else
With FORMSURAT
.TXTKODE.Value = Me.TABELSURAT.Column(1)
.TXTPERIHAL.Value = Me.TABELSURAT.Column(2)
.TXTISISURAT.Value = Me.TABELSURAT.Column(3)
.TXTHARI.Value = Me.TABELSURAT.Column(4)
.TXTWAKTU.Value = Me.TABELSURAT.Column(5)
.TXTTEMPAT.Value = Me.TABELSURAT.Column(6)
.TXTPENUTUP.Value = Me.TABELSURAT.Column(7)
.TXTJABATAN.Value = Me.TABELSURAT.Column(8)
.TXTNAMA.Value = Me.TABELSURAT.Column(9)
.TXTNIP.Value = Me.TABELSURAT.Column(10)
.CMDADD.Enabled = False
End With
FORMSURAT.Show
End If

End Sub

Private Sub CMDUPDATE1_Click()


'Perintah membuat sumber data ubah
Dim SUMBERUBAH As Object
Set SUMBERUBAH = Sheet1.Range("A6:A10000").Find(What:=FORMUTAMA.TXTNOMOR1.Value,
LookIn:=xlValues)
'perintah memastikan bahwa data yang akan diupdate telah dipilih
If Me.TXTNOMOR1.Value = "" Then
Call MsgBox("Data yang diupdate belum dipilih", vbInformation, "Update Data")
Else
SUMBERUBAH.Offset(0, 1).Value = Me.TXTNOMORSURAT.Value
SUMBERUBAH.Offset(0, 2).Value = Me.TXTPENERIMA.Value
Call MsgBox("Data berhasil diupdate", vbInformation, "Update Data")
Me.TXTNOMORSURAT.Value = ""
Me.TXTPENERIMA.Value = ""
Me.TXTNOMOR1.Value = ""
Call AmbilDataPenerima
End If

End Sub

Private Sub HOME_Click()


Me.MultiPage1.Value = 0
End Sub

Private Sub PENERIMA_Click()


Me.MultiPage1.Value = 2
FORMPILIHSURAT.Show
End Sub

Private Sub SURAT_Click()


Me.MultiPage1.Value = 1
FORMSURAT.Show
End Sub
Private Sub AmbilData()
Dim DBSURAT As Long
Dim irow As Long
irow = Sheet2.Range("A" & Rows.Count).End(xlUp).Row
DBSURAT = Application.WorksheetFunction.CountA(Sheet2.Range("A6:A100000"))
If DBSURAT = 0 Then
FORMUTAMA.TABELSURAT.RowSource = ""
Else
FORMUTAMA.TABELSURAT.RowSource = "ISISURAT!A6:K" & irow
End If
End Sub

Private Sub TABELPENERIMA_DblClick(ByVal Cancel As MSForms.ReturnBoolean)


On Error GoTo EXCELVBA
Dim SUMBERDATA, CELLAKTIF As Long
'Perintah mengisi Nomor Data yang akan diupdate
Me.TXTNOMOR1.Value = Me.TABELPENERIMA.Value
Me.TXTNOMORSURAT.Value = Me.TABELPENERIMA.Column(1)
Me.TXTPENERIMA.Value = Me.TABELPENERIMA.Column(2)

'Perintah untuk mengaktifkan baris data yang dipilih


Sheet1.Select
SUMBERDATA = Sheets("DATAPENERIMA").Cells(Rows.Count, "A").End(xlUp).Row
Sheets("DATAPENERIMA").Range("A6:A" & SUMBERDATA).Find(What:=Me.TXTNOMOR1.Value,
LookIn:=xlValues, LookAt:=xlWhole).Activate
CELLAKTIF = ActiveCell.Row
Sheet1.Select
Exit Sub
EXCELVBA:
Call MsgBox("Maaf, harap klik pada data yang tersedia", vbInformation, "Data
Penerima")

End Sub

Private Sub TABELSURAT_Click()


Dim SUMBERDATA, CELLAKTIF As Long
'Perintah mengisi Nomor Data yang akan diupdate
Me.TXTNOMOR.Value = Me.TABELSURAT.Value

'Perintah untuk mengaktifkan baris data yang dipilih


Sheet2.Select
SUMBERDATA = Sheets("ISISURAT").Cells(Rows.Count, "A").End(xlUp).Row
Sheets("ISISURAT").Range("A6:A" & SUMBERDATA).Find(What:=Me.TXTNOMOR.Value,
LookIn:=xlValues, LookAt:=xlWhole).Activate
CELLAKTIF = ActiveCell.Row
Sheet2.Select
End Sub

Private Sub TXTCARI_Change()


'Perintah pengganti Error
On Error GoTo Salah
'Perintah Menentukan tempat pencarian
Dim CariData As Object
Set CariData = Sheet2
Me.TABELSURAT.Value = ""
'Perintah memasukkan kriteria pencarian
Sheet4.Range("M6").Value = Me.TXTCARI.Value
'Perintah Melakukan Pencarian Data
CariData.Range("A5").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:= _
Sheet4.Range("M5:M6"), Copytorange:=Sheet4.Range("A5:K5"), Unique:=False
'Perintah Memasukkan hasil pencarian ke TabelHasil
Call HasilPencarian
'Perintah Lanjutan pengganti Error
Exit Sub
Salah:
Call MsgBox("Data tidak ditemukan", vbInformation, "Cari Data")
End Sub
Private Sub HasilPencarian()
Dim DBSURAT As Long
Dim irow As Long
irow = Sheet2.Range("A" & Rows.Count).End(xlUp).Row
DBSURAT = Application.WorksheetFunction.CountA(Sheet4.Range("A6:A100000"))
If DBSURAT = 0 Then
FORMUTAMA.TABELSURAT.RowSource = ""
Else
FORMUTAMA.TABELSURAT.RowSource = "CARITEMPLATE!A6:K" & irow
End If
End Sub
Private Sub AmbilDataPenerima()
Dim DBSURAT As Long
Dim irow As Long
irow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
DBSURAT = Application.WorksheetFunction.CountA(Sheet1.Range("A6:A100000"))
If DBSURAT = 0 Then
Me.TABELPENERIMA.RowSource = ""
Else
Me.TABELPENERIMA.RowSource = "DATAPENERIMA!A6:C" & irow
Me.LBTOTAL.Caption = Me.TABELPENERIMA.ListCount

End If
End Sub

Private Sub TXTCARIPENERIMA_Change()


'Perintah pengganti Error
On Error GoTo Salah
'Perintah Menentukan tempat pencarian
Dim CariData As Object
Set CariData = Sheet1
'Perintah memasukkan kriteria pencarian
Sheet1.Range("E6").Value = Me.TXTCARIPENERIMA.Value
'Perintah Melakukan Pencarian Data
CariData.Range("A5").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:= _
Sheet1.Range("E5:E6"), Copytorange:=Sheet1.Range("G5:I5"), Unique:=False
'Perintah Memasukkan hasil pencarian ke TabelHasil
Call HasilPencarian1
'Perintah Lanjutan pengganti Error
Exit Sub
Salah:
Call MsgBox("Data tidak ditemukan", vbInformation, "Cari Data")

End Sub
Private Sub HasilPencarian1()
Dim DBSURAT As Long
Dim irow As Long
irow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
DBSURAT = Application.WorksheetFunction.CountA(Sheet1.Range("A6:A100000"))
If DBSURAT = 0 Then
FORMUTAMA.TABELPENERIMA.RowSource = ""
Else
FORMUTAMA.TABELPENERIMA.RowSource = "DATAPENERIMA!G6:I" & irow
End If
End Sub

Private Sub UserForm_Initialize()


Call AmbilData
Call AmbilDataPenerima
Me.MultiPage1.Value = 0
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)


If CloseMode = 0 Then
Cancel = True
End If

End Sub

You might also like