çizimleri nesneleri silme

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,681
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
merhaba sayın hocalarım

F5/ÖZEL/NESNELER seçildiğinde silebiliyorum çalışma sayfamdan nesne yada çizgileri
ancak mesela ben A1:W20 arasındaki çizgileri nesneleri silmeyi nasıl yapabilirim.
 

Necdet

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

Aşağıdaki kodları deneyiniz. Her türlü şekli siler.

Kod:
Sub AraliktaSekilSil()
    
    Dim Sh As Shape
    
    With ActiveSheet
    
        For Each Sh In .Shapes
            If Not Application.Intersect(Sh.TopLeftCell, .Range("A1:W20")) Is Nothing Then Sh.Delete
        Next Sh
        
    End With
    
End Sub
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,681
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
sayın nejdet hocam
çizim adı altındaki nesneler değişik yerlerde olduğu ,için bu çözümlemeniz bir aralığı kapsıyo gibi
başka bir yolu yokmudur hocam.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,490
Excel Vers. ve Dili
Ofis 365 Türkçe
sayın nejdet hocam
çizim adı altındaki nesneler değişik yerlerde olduğu ,için bu çözümlemeniz bir aralığı kapsıyo gibi
başka bir yolu yokmudur hocam.
merhaba sayın hocalarım

F5/ÖZEL/NESNELER seçildiğinde silebiliyorum çalışma sayfamdan nesne yada çizgileri
ancak mesela ben A1:W20 arasındaki çizgileri nesneleri silmeyi nasıl yapabilirim.


Şimdi ne denir ki buna? olsa olsa dalga geçiyorsunuz diye düşünebilirim.
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,681
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
hocam estağfurullah benim sorumun asıl amacı herhangi bir aralıktaki bir çizimi silebilmek bir aralık örnek vermiştim sadece birkaç yerde olabiliyo mouse ile seçip silebilmek amacım tek tek silmektense o aralıkta ne varsa silebilmeyi sormuştum.
yanlış yönlendirdiysem özür dilerim.
 

Necdet

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

mesela lafını da ben atlamışım :) siz kusura bakmayınız.

Önce bölgeyi seçip, sonra kodları çalıştırınız.

Kod:
Sub AraliktaSekilSil()
    
    Dim Sh As Shape
    
    With ActiveSheet
    MsgBox Selection.Address
    
        For Each Sh In .Shapes
            If Not Intersect(Sh.TopLeftCell, Selection) Is Nothing Then Sh.Delete
        Next Sh
        
    End With
    
End Sub
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,681
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
teşekkürler hocam emeğinize sağlık
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,490
Excel Vers. ve Dili
Ofis 365 Türkçe
Güle güle kullanınız. Bana da bir fikir verdiniz, bu olayı fare sağ tık olayına bağlamak güzel bir eklenti olur.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Kodlar Necdet bey'den, sağ klik benden olsun. :)
--------------------------------------------------------------

Kodları module kopyalayın ve çalışma kitabını kaydetip kapatın.

Bu işlemden sonra kitabı açtığınız zaman, fare sağ kilik menüsüne "Yeni--->Nesneleri Sil" adın da yeni bir seçenek eklendiğini görebilirsiniz.

Herhangi bir alanı seçip sağ klik yaptıktan sonra bu seçeneği işaretlediğiniz de seçili alandaki nesneler silinir.

Kod:
Sub Auto_Open()
     FareMenu
End Sub
 
Sub FareMenu()
 
    Dim cb As CommandBar, MenuObject
 
    Set cb = Application.CommandBars("Cell")
    Set MenuObject = cb.Controls.Add(Type:=msoControlButton, Temporary:=True)
 
    With MenuObject
        .OnAction = "AraliktaSekilSil"
        .FaceId = 9
        .Caption = "Yeni--->Nesneleri Sil"
    End With
 
    Set cb = Nothing: Set MenuObject = Nothing
 
End Sub
 
Sub AraliktaSekilSil()
 
    Dim Sh As Shape
 
    Application.ScreenUpdating = False
        For Each Sh In ActiveSheet.Shapes
            If Not Application.Intersect(Sh.TopLeftCell, _
                Selection) Is Nothing Then Sh.Delete
        Next Sh
    Application.ScreenUpdating = True
 
End Sub
 
Sub Auto_Close()
     Application.CommandBars("Cell").Reset
End Sub
 

uzmanamele

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

Excel 2007 ve üzeri için;

Giriş / düzenleme / bul ve seç / nesneleri seç
Nesnelerini silmek istediğiniz alanı fareyle seçin ve silin.

Excel 2003 için; sanırım çizim araçları menüsünde bu ikonu bulabilirsiniz.
Silme işiniz bittiğinde ikonu pasif yapmayı unutmayın.
 

modoste

Altın Üye
Katılım
31 Mayıs 2008
Mesajlar
3,681
Excel Vers. ve Dili
Microsoft OFFİCE Ev ve İş 2019 TR
Altın Üyelik Bitiş Tarihi
18-03-2025
hocam bu çözüm çok iyi oldu tam aradığım bu idi makroyu da arşivime aldım ama bu tam istediğimdi.

Silme işiniz bittiğinde ikonu pasif yapmayı unutmayın. bunu anlayamadım hocam
bu sadece excel 2003 için mi
 

Necdet

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

Excel 2007 ve üzeri için;

Giriş / düzenleme / bul ve seç / nesneleri seç
Nesnelerini silmek istediğiniz alanı fareyle seçin ve silin.

Excel 2003 için; sanırım çizim araçları menüsünde bu ikonu bulabilirsiniz.
Silme işiniz bittiğinde ikonu pasif yapmayı unutmayın.
Evet 2007 ve sonrası için güzel özellik ama her türlü nesneyi silmedi, ya da ben beceremedim :)

Bunu karşılıklı görüşerek halletmek gerek :)
 
Üst