- Katılım
- 2 Ocak 2010
- Mesajlar
- 32
- Excel Vers. ve Dili
- 2010 Türkçe
Aşağıda verilen kodlarda "B" sütununa girilen id ye göre belirlenen klasörden resim alarak "F" sütununda aynı satıra yerleştiriyor.
Şöyle bir şey mümkün mü?
"B" sütununa id girince "F" sütununa, "H" sütununa id girince ise "L" sütununa resim almak mümkün olabilir mi?
Şöyle bir şey mümkün mü?
"B" sütununa id girince "F" sütununa, "H" sütununa id girince ise "L" sütununa resim almak mümkün olabilir mi?
Kod:
Public Function DosyaVarmi(dosyayolu As String) As Boolean
On Error GoTo Çıkış
If Not Dir(dosyayolu, vbDirectory) = vbNullString Then DosyaVarmi = True
Çıkış:
On Error GoTo 0
End Function
'worksheette bir değişiklik oldugunda bu kısım çalışıyor
Private Sub Worksheet_Change(ByVal Target As Range)
'değişiklik b sutunundamı olmuş diye kontrol et, değilse direk olarak fonksiyondan çık
If Intersect(Target, [b:b]) Is Nothing Then Exit Sub
'herhangi bir hata oluşursa Çıkış labelına git
On Error GoTo Çıkış:
' ilk olarak yüklü olan Resimleri silelim
ActiveSheet.DrawingObjects.Delete
Dim ResimDosyaYolu As String
Dim Resim As Object
'b deki 5 ile 12 arasındaki satırları kontrol edip resim ataması yapıyoruz, siz burayı isteğinize göre artırabilirsiniz
For i = 5 To 12
'aktif sayfanın path bilgisini alıp, seçilen ürün idyi sonuna ekliyoruz ve dosyayı alıyoruz
ResimDosyaYolu = ActiveWorkbook.Path & "\" & Range("b" & i) & ".jpg"
'dosya yok ise hataya düşmemek için aşağıdaki kontrolü yapıyoruz.
If DosyaVarmi(ResimDosyaYolu) Then
ResimDosyaYolu = ActiveWorkbook.Path & "\" & Range("b" & i) & ".jpg"
Else
ResimDosyaYolu = ActiveWorkbook.Path & "\yok.jpg"
End If
'resmi oluşturuyoruz.
Set Resim = ActiveSheet.Pictures.Insert(ResimDosyaYolu)
'Resmi boyutlandırıyoruz
With Range("f" & i)
Resim.Top = .Top
Resim.Left = .Left
Resim.Height = .Height
Resim.Width = .Width
End With
Next i
Çıkış:
End Sub
Son düzenleme:
