• DİKKAT

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

Makro ile şekil silmek

Katılım
10 Mayıs 2009
Mesajlar
1,080
Excel Vers. ve Dili
2003 türkçe
Merhabalar;

Addline ile eklenmiş sayfadaki tüm çizgileri silmek için nasıl bir makro komutu kullanmalıyım?
 
Selamlar,

Eğer sayfa üzerinde başka nesne yoksa aşağıdaki kod ile tüm nesneleri silebilirsiniz.

Kod:
Sub ÇİZGİ_SİL()
    On Error Resume Next
    ActiveSheet.DrawingObjects.Delete
    On Error GoTo 0
End Sub
 
Hocam sayfa üzerinde butonlar varsa butonları silmemesi için kodu nasıl düzenlemeliyim?
 
Selamlar,

Bu durumda aşağıdaki kodu kullanabilirsiniz.

Kod:
Option Explicit
 
Sub SAYFADAKİ_ÇİZGİLERİ_SİL()
    Dim NESNE As Shape
 
    For Each NESNE In ActiveSheet.Shapes
        If NESNE.Type = msoLine Then NESNE.Delete
    Next
 
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Hocam malesef bu şekilde uygulayınca da aynı sorun oluyor.Örnek dosyayı ekliyorum.msoLine olan type'inide netten arayıp birçok şey olarak denedim sabahtan beri ama bir türlü tutturamadım.
 

Ekli dosyalar

Selamlar,

Eklediğiniz dosyada çizgiyi sorun yaşamadan sildim.
 
Korhan Hocam;

Çizgiler sorunsuz siliniyor.Benim sorunum şu ki;sayfaya bir buton eklemişsem kodlar çalışırken butonu da siliyor.Çizgiler silinirken butonun sürekli kalmasını sağlayamıyorum.
 
Selamlar,

Sorun benim önerdiğim koddan kaynaklanmıyor. Sayfanızın çift tıklama kodunda bulunan aşağıdaki satırdan kaynaklanıyor. Bu satırı bulup pasif yapın düzelecektir.

Kod:
ActiveSheet.DrawingObjects.Delete
 
Sayın peleryn,

Bulunduğum yer itibari ile dosyanızı indirip tam olarak deneyemiyorum ama aşağıdaki kodu kendinize göre revize ederek bir deneyin.

Sub Düğme1_Tıklat()
On Error Resume Next
For a = 1 To 1000
ActiveSheet.Shapes("Dikdörtgen " & a).Delete 'Dikdörtgen'i silmek istediğiniz nesne ile değiştirin.
Next a
MsgBox "İşlem tamam"
End Sub
 
Şaban Hocam malesef olmadı.İlginçtir Delete komutunu .Select olarak değiştirince sadece çizgiyi seçiyor ama Delete yapınca butonu da siliyor..
 
Merhaba,

Kod:
Sub Deneme()
On Error Resume Next
For i = 1 To 10000
    ActiveSheet.Shapes("Çizgi " & i).Delete
Next
End Sub

Bu şekilde olur. Yalnız döngüdeki 10000 değeri sıkıntı yaratabilir. Sürekli çizgi ekleyeçeğiniz için 10000 değerini aşması olası bir durumdur.
.
 
Selamlar,

Sorun benim önerdiğim koddan kaynaklanmıyor. Sayfanızın çift tıklama kodunda bulunan aşağıdaki satırdan kaynaklanıyor. Bu satırı bulup pasif yapın düzelecektir.

Kod:
ActiveSheet.DrawingObjects.Delete

Korhan Hocam malesef mesajınızı görmemişim ve malesef arada o satır gözümden kaçmış oysa "sil" makrosunu atarken hepsini pasif yaptım sanıyordum.Kodlarınızla sorunum halloldu teşekkür ederim.

Ayrıca Şaban ve Ömer hocalarıma da teşekkür ediyorum..
 
Geri
Üst