Insert/Upload dan Menambahkan Gambar (Picture/Image) pada Cell atau Range Tertentu Secara Otomatis
Menambahkan Gambar pada Cell/Range Sebuah Sheet Tertentu – Auto Posisi – Auto Dimensi
Ketika membuat File Project dengan VBA pada aplikasi Microsof Office Excel yang mana semua tab menunya sudah dicustom seperti pada project Aplikasi untuk Mengelola Transaksi Keuangan Sekolah Terbaru, cara insert picture / image pada cell atau range tertentu ini akan sangat berguna dan efektif. Insert gambar (picture/image) pada sheet ini bisa disesuikan dengan kebutuhan, baik worksheetnya, target cell/range, posisi, maupun dimensi tinggi dan lebar gambar tersebut.Langkah-langkah Menambahkan/Insert Gambar (Picture/Image) pada Cell/Range Terentu
Untuk menambahkan gambar dengan VBA Excel pada sebuah sheet (misalnya Insert_Picture) dengan target cell/range tertentu bisa dilakukan dengan beberapa langkah berikut:Langkah 1: Menamabahkan Object / Shapes pada Sheet
Pada sheet Insert_Picture) tambahkan object / shapes misalnya dengan text “Insert Picture” seperti berikut:Langkah 2: Kode untuk Menentukan Target Sheet, Upload Picture/Image dan Menambahkannya pada Sheet
Buka visual basic editor, lalu insert/buat sebuah Module (misalnya Module1) dan tambahkan semua kode berikut:Option Explicit
Public strFILEGambar As String
Sub UploadIMAGE()
On Error Resume Next
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.InitialFileName = "" 'initial name selalu blank setiap open dialog
.Filters.Clear
.Filters.Add "ImageFile (*.*)", "*.jpg*; *.jpeg*; *.gif*; *.bmp; *.png", 1 'ALL IMAGE EXTENSION
If .Show = -1 Then
strFILEGambar = .SelectedItems(1)
'handle saat close dialog open file
Application.OnTime Now(), "TargetWORKSHEET"
Else
MsgBox "Tidak Ada File Image yang diUPLOAD...!!!", vbExclamation, "Info"
End If
End With
End Sub
Sub TargetWORKSHEET()
'Menentukan taget worksheet dan range yang akan ditambahkan image/gambar
'Mengecek image/gambar pada cell/range yang ada pada sebuah sheet
'Supaya tidak menumpuk, jika sudah ada gambar sebelumnya akan di hapus dulu lalu di update dengan picture/gambar baru
Dim wsGAMBAR_IMAGE As Worksheet, shp As Shape
Set wsGAMBAR_IMAGE = ThisWorkbook.Worksheets("Insert_Picture")
With wsGAMBAR_IMAGE
For Each shp In .Shapes
If Not Intersect(shp.TopLeftCell, .Range("A1:B4")) Is Nothing Then shp.Delete
Next shp
Call InsertMyImage(wsGAMBAR_IMAGE, strFILEGambar, .Range("A1:B4"))
End With
End Sub
Sub InsertMyImage(sh As Worksheet, NamaFileImage As String, TargetCells As Range)
'Insert Picture/Image => Auto posisi plus auto dimensi sesuai TargetCells (row height + row width) yang sudah ditentukan
On Error Resume Next
Dim MyPicture As Object, t As Double, l As Double, w As Double, h As Double
'If Dir(NamaFileImage) = "" Then Exit Sub 'pilihan / alt
'import picture/image/gambar
Set MyPicture = sh.Pictures.Insert(NamaFileImage)
'menentukan posisi image
With TargetCells
t = .Top
l = .Left
w = .Offset(0, .Columns.Count).Left - .Left
h = .Offset(.Rows.Count, 0).Top - .Top
End With
' menempatkan posisi image
With MyPicture
.ShapeRange.LockAspectRatio = msoFalse
.Top = t
.Left = l
.Width = w - 3 'sesuaikan
.Height = h - 2 'sesuaikan
End With
Set MyPicture = Nothing
End Sub
Langkah 3: Assign Macro Object / Shapes
Untuk insert dan upload picture/image dan menempatkan gambar yang sudah diupload sesuai dengan kode pada Langkah 2, silahkan Assign Macro button "Insert Picture" yang sudah dibuat pada Langkah 1 dengan cara:Klik kanan object (Insert Picture) ⟾ Assign Macro ⟾ Pada Macro Name, pilih UploadIMAGE (sub modul yang sudah dibuat sebelumnya) seperti berikut:
Langkah 4: Simpan File Project
Setelah semuanya beres dibuat.... simpan file project ini misalnya dengan nama:- Cara Membuat Custom Menambahkan Gambar Pada Sheet Secara Otomatis.xlsm
- Langkah-langkah Cara Insert dan Upload Gambar (Picture/Image) pada Cell atau Range.xlsb
- Atau yang lainnya........