Belirli bir nesneyi makro ile silmek

EKREM1661

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
1,265
Excel Vers. ve Dili
Excel-2016
Altın Üyelik Bitiş Tarihi
03-02-2026
Değerli Arkadaşlar..! İlişikte Küçük bir örnek ekledim.. Yazdır sayfasında bir buton ile; "Resim 1" isimli, resim nesnesini makro ile siliyorum..

Ancak; resim olmayınca, silecek resim bulamıyor ve hata veriyor " If " ifadesi kullanmak gerekiyor, bunu başaramadım.. yardımcı olabilir misiniz.
 

Ekli dosyalar

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba

bu işinizi görür mü?
Kod:
Sub ResimSil()
If ActiveSheet.Shapes(1).Name = "Resim 1" Then
ActiveSheet.Shapes("Resim 1").Delete
Else
MsgBox "resim yoktur"
End If
End Sub
 

Ekli dosyalar

EKREM1661

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
1,265
Excel Vers. ve Dili
Excel-2016
Altın Üyelik Bitiş Tarihi
03-02-2026
Sn. uzmanamele ilginize teşekkür ediyorum.. Fakat sayfada "Resim 1" olduğu halde; nedense MsgBox "resim yoktur" iletisini veriyor..Yani silme işi gerçekleşmiyor..
 
Son düzenleme:

EKREM1661

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
1,265
Excel Vers. ve Dili
Excel-2016
Altın Üyelik Bitiş Tarihi
03-02-2026
Süleyman Bey..özür diliyorum..hata bendeki dosyada imiş.. yardımınız için teşekkürler..
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Adı Resim ile başlayan tüm şekilleri silmek isterseniz kodları deneyiniz.


Kod:
Sub Adi_Resim_ile_Baslayan_Sekilleri_Sil()
    Dim r As Shape
    For Each r In ActiveSheet.Shapes
        If r.Name Like "Resim*" Then r.Delete
    Next r
End Sub
 

EKREM1661

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
1,265
Excel Vers. ve Dili
Excel-2016
Altın Üyelik Bitiş Tarihi
03-02-2026
Sn.Necdet Bey'e çok teşekkür ediyorum.. Bu çözüm çok işimi görecek..
 

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,

Adı Resim ile başlayan tüm şekilleri silmek isterseniz kodları deneyiniz.


Kod:
Sub Adi_Resim_ile_Baslayan_Sekilleri_Sil()
    Dim r As Shape
    For Each r In ActiveSheet.Shapes
        If r.Name Like "Resim*" Then r.Delete
    Next r
End Sub
Hocam selamlarrrr bu kodu nasıl tüm sayfalara ekleyebilirz ve misal bazı nesnelerim O ile bazıları A ile başlıyor o seçeneği nasıl çoğaltabilirim altına direk
If r.Name Like "Resim*" Then r.Delete
If r.Name Like "O*" Then r.Delete
.
.
bu şekilde eklemem mi gerekiyor
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Kod:
Sub Adi_Resim_ile_Baslayan_Sekilleri_Sil()
    Dim r As Shape
    For Each r In ActiveSheet.Shapes
        If r.Name Like "O*" Or r.Name Like "A*" Then r.Delete
    Next r
End Sub
 

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,

Kod:
Sub Adi_Resim_ile_Baslayan_Sekilleri_Sil()
    Dim r As Shape
    For Each r In ActiveSheet.Shapes
        If r.Name Like "O*" Or r.Name Like "A*" Then r.Delete
    Next r
End Sub
Selamlar hocam bunu aktif sayda değilde tüm çalışma kitabı için nasıl yapabiliriz. Tüm dosyadaki image1 nesnelerini silmek istiyorum hatta mumkunse aynı boyutlarda yerıne belirlediğim konumdan foto eklemek
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

İşlem gayet basit, Önce tüm sayfaları dolaşan bir döngü ve bu döngünün içinde de mevcut döngü olması gerek.
Kod:
Sub Adi_Resim_ile_Baslayan_Sekilleri_Sil()

    Dim r As Shape
    Dim sh As Worksheet
    
    For Each sh In Worksheets
        For Each r In sh.Shapes
            If r.Name Like "O*" Or r.Name Like "A*" Then r.Delete
        Next r
    Next sh
    
End Sub
 
Üst