• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

makro ile dosyadan resim çağırırken hatalı durum hk

Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
merhabalar

aşağıdaki kod ile d sütununda d29 nolu hücrede yaptığım bir seçimle b29 hücresine resim getiriyorum. bu seçimi d30, d31,d32,d33 gibi ilerleyen hücrelerde devam ederek sırasıyla b30,b31b32,b33 hücrelerine resimler gelmiş oluyor.

fakat ben d sütununda bütün seçimleri yapmış ve resimleri çağırmış olayım. eğer d29 hücresinde sonrasında yaptığım seçimle bir resim tanılanmamış ve gelmiyorsa alt hücrelerdeki seçtiğim halde varolan resimler kayboluyor. tekrar d29 tanımlanmış bir resim çağırırsam alt hücredeki resimlerin hepsi görünmeye başlıyor. bu ufak sorunu nasıl alabilirim bilgi ve yardımlarınızı rica ederim

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [d:d]) Is Nothing Then Exit Sub
On Error GoTo çıkış
Dim ResimYolu As Variant
Dim resim As Object
ActiveSheet.DrawingObjects.Delete
For satır = 29 To 1000
ResimYolu = ActiveWorkbook.Path & "\" & Range("d" & satır) & ".jpg"
Set resim = ActiveSheet.Pictures.Insert(ResimYolu)

With Range("b" & satır)
resim.Top = .Top + 2
resim.Left = .Left + 4
resim.Height = .Height - 2
resim.Width = .Width - 4
End With
Next satır
çıkış:

End Sub
 
Merhaba.

On Error GoTo çıkış
Satırını, aşağıdaki satırın altına alın.
Set resim = ActiveSheet.Pictures.Insert(ResimYolu)
 
bu seferde "Set resim = ActiveSheet.Pictures.Insert(ResimYolu)" satırında hata verdi
 
Önceki tüm resimleri silmek istiyorsanız;
Kod:
Sub resimsilsil59()
Dim resim As Picture
For Each resim In ActiveSheet.Pictures
    resim.Delete
Next
End Sub
 
Kırmızı yerleri ekleyiniz.

Rich (BB code):
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [d:d]) Is Nothing Then Exit Sub
On Error GoTo çıkış
Dim ResimYolu As Variant
Dim resim As Object
ActiveSheet.DrawingObjects.Delete
For satır = 29 To 1000

ResimYolu = ActiveWorkbook.Path & "\" & Range("d" & satır) & ".jpg"

If CreateObject("Scripting.FileSystemObject").FileExists(ResimYolu) = True Then

Set resim = ActiveSheet.Pictures.Insert(ResimYolu)
With Range("b" & satır)
resim.Top = .Top + 2
resim.Left = .Left + 4
resim.Height = .Height - 2
resim.Width = .Width - 4
End With

End If

Next satır
çıkış:

End Sub
 
üstadlarım çok teşekkür ederim. halit3 üstadım ilettiğiniz kod düzenini uyguladığımda istediğim sonucu oldum harikasınız çok sağolun
 
üstadlarım çok teşekkür ederim. halit3 üstadım ilettiğiniz kod düzenini uyguladığımda istediğim sonucu oldum harikasınız çok sağolun
Teşekkürler iyi çalışmalar
 
Geri
Üst