Klasör içinden Secili Hücreye Resimleri Cekme

Katılım
10 Eylül 2019
Mesajlar
19
Excel Vers. ve Dili
2019 Türkçe
merhaba,
Klasörüm iinde 3000 yakın resim var ve bunlar gün be gün çoğalıyor ..
Resim adı 20KB0001111 ürün kodları da aynı şekilde olmaktadır...
Sayfa 2 de A3 hüçresinde VERİ DOĞRULAMA Sayfa 1 den cekiyorum D3 hüçresine ise A3 den değiştirdikce D3 hüçresinde resimde tek tek değişmesini istiyorum...
aşağıda bir kod var ama bir türlü çalıştıramadım yardımlarınız için teşekkür ederim şimdiden herkese kolay gelsin.

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, [A3]) Is Nothing Then Exit Sub

ActiveSheet.DrawingObjects.Delete

Dim ResimYolu As Variant
Dim resim As Object

ResimYolu = Dir(ActiveWorkbook.Path & "\" & ("D3") & ".jpg")

Set resim = ActiveSheet.Pictures.Insert(ActiveWorkbook.Path & "\" & ResimYolu)

With Range("D3")
resim.Top = .Top + 2
resim.Left = .Left + 2
resim.Height = .Height + 4
resim.Width = .Width - 4

End With


End Sub
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,181
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba;
Sayfanın kod bölümüne;

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [a3]) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
On Error Resume Next
Dim resim As Object, i As Long, yol As String, dosya As String
yol = ActiveWorkbook.Path & "\"

Set Alan = Range("D3")
For Each resimm In ActiveSheet.Pictures
If Not Intersect(resimm.TopLeftCell, Alan) Is Nothing Then
resimm.Delete
End If
Next
Set Alan = Nothing

If Dir(yol & "\" & Cells(3, "a").Value & ".jpg") <> "" Then
dosya = "\" & Cells(3, "a").Value & ".jpg"
If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
Set P = ActiveSheet.Pictures.Insert(yol & dosya)

With Cells(3, "D")
t = .Top
l = .Left
w = .Offset(50, .Columns.Count).Left - .Left
h = .Offset(.Rows.Count, 50).Top - .Top
End With

With P
.Top = t + 1
.Left = l + 1
.Width = w - 1
.Height = h - 1
End With
Set P = Nothing
End If
Application.ScreenUpdating = True
End Sub

Kodlarını yerleştirin ve A3 hücresinde resim adını değiştirerek deneyin.
İyi çalışmalar.
 
Katılım
10 Eylül 2019
Mesajlar
19
Excel Vers. ve Dili
2019 Türkçe
Merhaba,
İlginiz çok teşekkür ederim evet çalışıyor..Ama aşağıdaki iki sorun var ..
1 >D3 hücresine dışında bir alana geliyor resimler ( sağına doğru atıyor J K L M N sütunlara doğru atıyor )
2 >Fotoğraflar üst üst geliyor değiştikçe oradaki resimde kalkıp yerine diğeri gelmesi gerekiyor.
3 >Son olarak da birden fazla .jpg .jpeg uzantı var.
Çok teşekkür ederim ilginiz için tekrardan ve yardımcı olacak arkadaşlara....
hayırlı günler dilerim.
 

owenefe

Altın Üye
Katılım
13 Nisan 2012
Mesajlar
36
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
23-01-2026
Merhaba;
Sayfanın kod bölümüne;

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [a3]) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
On Error Resume Next
Dim resim As Object, i As Long, yol As String, dosya As String
yol = ActiveWorkbook.Path & "\"

Set Alan = Range("D3")
For Each resimm In ActiveSheet.Pictures
If Not Intersect(resimm.TopLeftCell, Alan) Is Nothing Then
resimm.Delete
End If
Next
Set Alan = Nothing

If Dir(yol & "\" & Cells(3, "a").Value & ".jpg") <> "" Then
dosya = "\" & Cells(3, "a").Value & ".jpg"
If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
Set P = ActiveSheet.Pictures.Insert(yol & dosya)

With Cells(3, "D")
t = .Top
l = .Left
w = .Offset(50, .Columns.Count).Left - .Left
h = .Offset(.Rows.Count, 50).Top - .Top
End With

With P
.Top = t + 1
.Left = l + 1
.Width = w - 1
.Height = h - 1
End With
Set P = Nothing
End If
Application.ScreenUpdating = True
End Sub

Kodlarını yerleştirin ve A3 hücresinde resim adını değiştirerek deneyin.
İyi çalışmalar.
Bu kodu sizden ricam boyutunu şu şekilde revize edebilirmiyiz. fotoğrafın başlangıç noktası c sutunu bitişi g sutunu başlangıç 41.satır ile 50.satır gibi
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,181
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba,
İlginiz çok teşekkür ederim evet çalışıyor..Ama aşağıdaki iki sorun var ..
1 >D3 hücresine dışında bir alana geliyor resimler ( sağına doğru atıyor J K L M N sütunlara doğru atıyor )
2 >Fotoğraflar üst üst geliyor değiştikçe oradaki resimde kalkıp yerine diğeri gelmesi gerekiyor.
3 >Son olarak da birden fazla .jpg .jpeg uzantı var.
Çok teşekkür ederim ilginiz için tekrardan ve yardımcı olacak arkadaşlara....
hayırlı günler dilerim.
Neden sorun yaşadığınız anlayamadım ama ekteki uygulamayı deneyerek sorunlarınız gidermeye çalışın. (örnek dosyanız olmadığı için sorunu göremiyorum)
İyi çalışmalar.

Link:
 

Ekli dosyalar

owenefe

Altın Üye
Katılım
13 Nisan 2012
Mesajlar
36
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
23-01-2026
Merhaba;
Eki inceleyin ve deneyin.
İyi çalışmalar.
hocam eline sağlık süper olmuş kendi dosyama uyarladım. Her sayfada seçmem gereken 4 fotoğraf var. Yani bu formülü 4lü hale nasıl getirebilirm. her sayfa 4 foto olucak ve her fotoğraf adı ve kendisi farklı tabiki. Kısacası attığınız formüle ilave nasıl yapabilirim
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,181
Excel Vers. ve Dili
Excel-2003 Türkçe
hocam eline sağlık süper olmuş kendi dosyama uyarladım. Her sayfada seçmem gereken 4 fotoğraf var. Yani bu formülü 4lü hale nasıl getirebilirm. her sayfa 4 foto olucak ve her fotoğraf adı ve kendisi farklı tabiki. Kısacası attığınız formüle ilave nasıl yapabilirim
Merhaba;
Sizin bir sorunuzu cevapladım.
(bir sayfaya 4 resim getirmekle ilgili) Onu kontrol edin. (sanırım aynı dosyaya uygulayacaktınız)
 
Üst