Arkadaşlar Merhaba, Aşağıdaki kod yardımıyla jpg uzantılı resimleri çağırabiliyorum. Benim istediğim bu kodu diğer resim uzantılarını da desteklemesi. Bunun için nasıl bir değişiklik yapılmalıdır. (Özellikle png uzantılar) Saygılar.
C++:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Resim As OLEObject, Yeni_Resim As OLEObject, Resim_Adres As Range, Yol As String, Resim_Adı As String
If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub
Application.ScreenUpdating = False
Yol = ThisWorkbook.Path & "\STOKLAR\"
Resim_Adı = Target.Value & ".jpg"
Set Resim_Adres = Range(Target.Offset(0, -1).Address, Target.Offset(0, -1).Address)
If ActiveSheet.Shapes.Count > 0 Then
For Each Resim In ActiveSheet.OLEObjects
If Not Intersect(Range(Resim.TopLeftCell.Address & ":" & Resim.TopLeftCell.Address), Resim_Adres) Is Nothing Then
Resim.Delete
End If
Next
End If
Set Yeni_Resim = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _
DisplayAsIcon:=False, Left:=Resim_Adres.Left, Top:=Resim_Adres.Top, Width:=Resim_Adres.Width, Height:=Resim_Adres.Height)
With Yeni_Resim
.Top = Resim_Adres.Top
.Left = Resim_Adres.Left
.Height = Resim_Adres.Height
.Width = Resim_Adres.Width
.Object.PictureSizeMode = fmPictureSizeModeStretch
End With
If Dir(Yol & Resim_Adı) <> "" Then
Yeni_Resim.Object.Picture = LoadPicture(Yol & Resim_Adı)
Else
Yeni_Resim.Object.Picture = LoadPicture(Yol & "X.jpg")
End If
Application.ScreenUpdating = True
End Sub