Cara Masukkan/Insert Foto Kedalam Aplikasi Dengan Userfrom VBA Excel |
Admin sangat menyarankan bagi yang mempelajari Vba Excel untuk tahap pemula agar membuat berbagai macam file contoh percobaan dengan berbagai kode yang didapatkan.
Dengan membuat file contoh percobaan penerapan kode Vba Excel akan mempercepat memahami dan mengetahui fungsi dan cara kerja kode Vba Excel yang diterapkan pada aplikasi.
Belajar membuat aplikasi itu harus memperbanyak Experiment berdasarkan teori-teori yang ada di internet. Belajar hanya berdasarkan teori saja tanpa membuat file contoh penerapan atau file experiment sedikit kemungkinan dapat menguasai Vba Excel.
Perlu diketahui bahwa foto yang disimpan tidak dalam Database atau dalam workbook excel, Melainkan Aplikasi akan membuat Folder tambahan dimana aplikasi tersebut disimpan di komputer, sehingga database tidak akan meluap sizenya.!!
Langkah-Langkah Insert Foto Dalam Aplikasi Dengan Userform VBA Excel
- Download File Percobaan dibawah
LINK DOWNLOAD TERKUNCI.
Silahkan SHARE untuk membuka kunci!
Silahkan SHARE untuk membuka kunci!
- Buka Excel dan Pilih Developer selanjutnya klik pada Visual Basic.
- Sheet1 ganti nama sheetnya menjadi "DB"
- Rancang Aplikasi seperti yang terlihat pada Gambar berformat gif diatas dan Sesuaikan :
Image :
Image1 dan Image4 (Image1 pada gambar diatas sudah saya tutupi)
Isikan Gambar pada Image1 melalui properties, download Gambar disini
Ganti Caption Label :
Label1 Menjadi NISImage1 dan Image4 (Image1 pada gambar diatas sudah saya tutupi)
Isikan Gambar pada Image1 melalui properties, download Gambar disini
Ganti Caption Label :
Label2 Menjadi NAMA SISWA
Label3 Menjadi KELAS
Label4 Menjadi NAMA WALI
Label5 Menjadi ALAMAT
Label6 Menjadi SIMPAN
Label7 Menjadi RESET
Label8 Menjadi Load Images
Ganti Name Textbox :
Textbox1 Menjadi TxtNis
Textbox2 Menjadi TxtNama
Textbox3 Menjadi TxtKelas
Textbox4 Menjadi TxtWali
Textbox5 Menjadi TxtAlamat
Textbox6 Menjadi TxtLink
Listbox biarkan saja dengan name Listbox1
- Letakkan Kode dibawah ini pada tempatnya yaitu pada UserForm_Activate(). Kode berikut akan membuat folder "Foto" secara otomatis ketika aplikasi dijalankan untuk pertama sekali.
Private Sub UserForm_Activate()
On Error Resume Next
MkDir ThisWorkbook.path & "\" & "Foto" & "\"
On Error GoTo 0
End Sub
On Error Resume Next
MkDir ThisWorkbook.path & "\" & "Foto" & "\"
On Error GoTo 0
End Sub
- Tempatkan Kode dibawah ini pada userform untuk memanggil Gambar Image1 bila tidak terjadi insertfoto.
Sub InsertPhoto()
UserForm1.Image4.Picture = UserForm1.Image1.Picture
End Sub
UserForm1.Image4.Picture = UserForm1.Image1.Picture
End Sub
- Tempatkan Kode dibawah ini di sembarang pada userform untuk menampilkan data pada Listbox. Untuk lebih jelas Pelajari Posting "Tampilkan Data di ListBox di UserForm VBA Excel"
Sub ListData()
With UserForm1.ListBox1
.RowSource = "RDB"
.ColumnCount = "6"
.ColumnWidths = "35, 40, 80, 40, 60"
End With
End Sub
With UserForm1.ListBox1
.RowSource = "RDB"
.ColumnCount = "6"
.ColumnWidths = "35, 40, 80, 40, 60"
End With
End Sub
- Tempatkan Kode dibawah ini pada UserForm_Initialize
Private Sub UserForm_Initialize()
Call InsertPhoto 'Untuk memanggil InserPhoto
Call ListData 'Untuk memanggil Tampilan Listbox
End Sub
Call InsertPhoto 'Untuk memanggil InserPhoto
Call ListData 'Untuk memanggil Tampilan Listbox
End Sub
- Tempatkan Kode pada tombol SIMPAN yang berfungsi untuk menyimpan data dan foto
Private Sub Label6_Click()
Dim iRow As Long
Dim Ws As Worksheet
Dim path As String
Set Ws = Worksheets("DB")
path = ThisWorkbook.path & "\" & "Foto" & "\"
'menemukan Baris Kosong pada data
iRow = Ws.Cells(Rows.Count, 2) _
.End(xlUp).Offset(1, 0).Row
'Ceks Untuk NIS
If Trim(Me.TxtNis.Value) = "" Then
Me.TxtNis.SetFocus
MsgBox "Masukkan NIS Terlebih Dahulu", vbAbortRetryIgnore, "Aplikasi Insert Photo"
Exit Sub
End If
'kode untuk mencegah NIS Ganda
If WorksheetFunction.CountIf(Ws.Range("B3", Ws.Cells(iRow, 2)), Me.TxtNis.Value) > 0 Then
MsgBox "NIS Ganda..!! Lihat Data NIS Terakhir..!!!", vbCritical, "Aplikasi Insert Photo"
Exit Sub
End If
Ws.Cells(iRow, 1).Value = "=Row()-2"
Ws.Cells(iRow, 2).Value = Me.TxtNis.Value
Ws.Cells(iRow, 3).Value = Me.TxtNama.Value
Ws.Cells(iRow, 4).Value = Me.TxtKelas.Value
Ws.Cells(iRow, 5).Value = Me.TxtWali.Value
Ws.Cells(iRow, 6).Value = Me.TxtAlamat.Value
Ws.Cells(iRow, 7).Value = path & UserForm1.TxtNis.Value & ".jpg"
SavePicture UserForm1.Image4.Picture, path & UserForm1.TxtNis.Value & ".jpg"
'panggil ListBox untuk menampilkan data setelah disimpan
Call ListData
'Panggil Reset untuk mengosongkan form isian data
Call Label7_Click
End Sub
Dim iRow As Long
Dim Ws As Worksheet
Dim path As String
Set Ws = Worksheets("DB")
path = ThisWorkbook.path & "\" & "Foto" & "\"
'menemukan Baris Kosong pada data
iRow = Ws.Cells(Rows.Count, 2) _
.End(xlUp).Offset(1, 0).Row
'Ceks Untuk NIS
If Trim(Me.TxtNis.Value) = "" Then
Me.TxtNis.SetFocus
MsgBox "Masukkan NIS Terlebih Dahulu", vbAbortRetryIgnore, "Aplikasi Insert Photo"
Exit Sub
End If
'kode untuk mencegah NIS Ganda
If WorksheetFunction.CountIf(Ws.Range("B3", Ws.Cells(iRow, 2)), Me.TxtNis.Value) > 0 Then
MsgBox "NIS Ganda..!! Lihat Data NIS Terakhir..!!!", vbCritical, "Aplikasi Insert Photo"
Exit Sub
End If
Ws.Cells(iRow, 1).Value = "=Row()-2"
Ws.Cells(iRow, 2).Value = Me.TxtNis.Value
Ws.Cells(iRow, 3).Value = Me.TxtNama.Value
Ws.Cells(iRow, 4).Value = Me.TxtKelas.Value
Ws.Cells(iRow, 5).Value = Me.TxtWali.Value
Ws.Cells(iRow, 6).Value = Me.TxtAlamat.Value
Ws.Cells(iRow, 7).Value = path & UserForm1.TxtNis.Value & ".jpg"
SavePicture UserForm1.Image4.Picture, path & UserForm1.TxtNis.Value & ".jpg"
'panggil ListBox untuk menampilkan data setelah disimpan
Call ListData
'Panggil Reset untuk mengosongkan form isian data
Call Label7_Click
End Sub
- Tempatkan Kode dibawah pada tombol RESET yang berfungsi mereset form
Private Sub Label7_Click()
TextBox1.Value = ""
TxtNis.Value = ""
TxtNama.Value = ""
TxtKelas.Value = ""
TxtWali.Value = ""
Me.TxtAlamat.Value = ""
Call InsertPhoto
End Sub
TextBox1.Value = ""
TxtNis.Value = ""
TxtNama.Value = ""
TxtKelas.Value = ""
TxtWali.Value = ""
Me.TxtAlamat.Value = ""
Call InsertPhoto
End Sub
- Tempatkan Kode dibawah ini pada LoadImages Untuk menelusuri Gambar
Private Sub Label8_Click()
On Error Resume Next
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.ButtonName = "Insert"
.Title = "Pilih File Foto"
.Filters.Add "Gambar", "*.gif; *.jpg; *.jpeg", 1
If .Show = -1 Then
UserForm1.TextBox6.Text = .SelectedItems(1)
UserForm1.Image4.PictureSizeMode = fmPictureSizeModeStretch
UserForm1.Image4.Picture = LoadPicture(.SelectedItems(1))
Else
End If
End With
End Sub
On Error Resume Next
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.ButtonName = "Insert"
.Title = "Pilih File Foto"
.Filters.Add "Gambar", "*.gif; *.jpg; *.jpeg", 1
If .Show = -1 Then
UserForm1.TextBox6.Text = .SelectedItems(1)
UserForm1.Image4.PictureSizeMode = fmPictureSizeModeStretch
UserForm1.Image4.Picture = LoadPicture(.SelectedItems(1))
Else
End If
End With
End Sub
- Tempatkan Kode dibawah ini pada ListBox1_DblClick yang berfungsi menampilkan data Listbox ke Textbox serta Foto dengan Doble Klik. Untuk lebih jelas Pelajari Posting "Tampikan Data Dari ListBox Ke Textbox Dengan Double Klik"
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
Dim path As String: path = ThisWorkbook.path & "\" & "Foto" & "\"
If UserForm1.ListBox1.ListIndex > 0 Then
TxtNis.Value = ListBox1.List(ListBox1.ListIndex, 1)
TxtNama.Value = ListBox1.List(ListBox1.ListIndex, 2)
TxtKelas.Value = ListBox1.List(ListBox1.ListIndex, 3)
TxtWali.Value = ListBox1.List(ListBox1.ListIndex, 4)
TxtAlamat.Value = ListBox1.List(ListBox1.ListIndex, 5)
TextBox1.Value = ListBox1.List(ListBox1.ListIndex, 6)
Image4.Picture = LoadPicture(path & UserForm1.TxtNis.Value & ".jpg")
End If
End Sub
On Error Resume Next
Dim path As String: path = ThisWorkbook.path & "\" & "Foto" & "\"
If UserForm1.ListBox1.ListIndex > 0 Then
TxtNis.Value = ListBox1.List(ListBox1.ListIndex, 1)
TxtNama.Value = ListBox1.List(ListBox1.ListIndex, 2)
TxtKelas.Value = ListBox1.List(ListBox1.ListIndex, 3)
TxtWali.Value = ListBox1.List(ListBox1.ListIndex, 4)
TxtAlamat.Value = ListBox1.List(ListBox1.ListIndex, 5)
TextBox1.Value = ListBox1.List(ListBox1.ListIndex, 6)
Image4.Picture = LoadPicture(path & UserForm1.TxtNis.Value & ".jpg")
End If
End Sub
Demikian Kode-kodenya untuk Posting "Insert Foto Kedalam Aplikasi Dengan Userfrom VBA Excel". Silahkan dipelajari sendiri yeah..!!
Mohon maaf klo tutorialnya ngak beraturan... harap maklum... yang bikin Pelajar Otodidak. hehehe.. Semoga bermanfaat.