• DİKKAT

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

Vba da akyif hücreden sonraki alanın silinmesi

Katılım
12 Şubat 2019
Mesajlar
115
Excel Vers. ve Dili
Vera. 10 Dil Türkçe
Merhaba,
Çeşitli sütun uzunluklarına sahip tablolarımın olduğu sayfalardaki tablolarımın yer aldığı hücre içerikleri hariç diğer hücrelerde bulunan içeriği silmek istiyorum.
Yazdığım makro kodu
Range(“A1”).select
Selection.End(xlToRight).Select
ActiveCell.Offset(0, 1).Range(“A1”).select

Bu benim tablomun bittiği hücreden sonra gelen son hücreyi veriyor.
Bu hücrenin olduğu satır ve sütunlar dahil ve sonrasındaki bütün satır ve sütunların içeriğini silecek kodlar konusunda yardımlarını rica ederim.
 
İstediğiniz böyle bir şey mi?
Kod:
ActiveCell.EntireRow = ""
ActiveCell.EntireColumn = ""
 
İstediğiniz böyle bir şey mi?
Kod:
ActiveCell.EntireRow = ""
ActiveCell.EntireColumn = ""
Hayır değil.
Mesela benim tablom A1 den başlayıp F10 da bitiyor. Yuksrıda benim yezdığım kod seçili hücreyi sadece g1 yapıyor sonrasında benim istediğim G1 in yer aldığı satır ve sütun dahil sonraki bütün satır ve sütunlarının içeriğinin silinmesi.
 
Sorunuza örnek dosya ile desteklerseniz hızlı bir şekilde çözüme ulaşırsınız.
 
Tek satırda aşağıdaki gibi deneyin:

Range(Range("A1").End(xlToRight).Offset(0, 1).EntireColumn, Selection.End(xlToRight)).Delete Shift:=xlToLeft
 
Tek satırda aşağıdaki gibi deneyin:

Malesef olmadı. Ekkoymaya çalıştım ama başaramadım. Şöyle düşünün diyelim bir tablom var ve F sütununda bitiyor. O zman F sütunun dan sonraki bütün sütunların içeriğini silmek istiyorum.
 
Bu şekilde deneyiniz
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Intersect(ActiveCell, [A1:F500]) Is Nothing Then Exit Sub
Range(Cells(ActiveCell.Row, "A"), Cells(ActiveCell.Row, "F")) = ""
End Sub
 
Deneyiniz.

Kod:
Sub Temizle()
    Range(Cells(1, 1).End(2)(1, 2), Cells(Rows.Count, Columns.Count)).ClearContents
End Sub


Ya da;

Kod:
Sub Temizle()
    Cells(1, 1).End(2)(1, 2).Resize(Rows.Count, Columns.Count - Cells(1, 1).End(2).Column).ClearContents
End Sub
 
Deneyiniz.

Kod:
Sub Temizle()
    Range(Cells(1, 1).End(2)(1, 2), Cells(Rows.Count, Columns.Count)).ClearContents
End Sub


Ya da;

Kod:
Sub Temizle()
    Cells(1, 1).End(2)(1, 2).Resize(Rows.Count, Columns.Count - Cells(1, 1).End(2).Column).ClearContents
End Sub
çok teşekkür ederim...
 
Deneyiniz.

Kod:
Sub Temizle()
    Range(Cells(1, 1).End(2)(1, 2), Cells(Rows.Count, Columns.Count)).ClearContents
End Sub


Ya da;

Kod:
Sub Temizle()
    Cells(1, 1).End(2)(1, 2).Resize(Rows.Count, Columns.Count - Cells(1, 1).End(2).Column).ClearContents
End Sub
Merhaba korhan bey. Bu yukardaki kodu çalışma dosyamın içindeki bütün sayfalarda uygulamak istiyorum. O yüzden bir for next döngüsü kurmam getekiyor galiba. Bana yardımcı olur musunuz.
 
Deneyiniz.

Kod:
Option Explicit

Sub Temizle()
    Dim Sh As Worksheet
    For Each Sh In ThisWorkbook.Worksheets
        With Sh
            If WorksheetFunction.CountA(.Cells) > 0 Then
                .Range(.Cells(1, 1).End(2)(1, 2), .Cells(.Rows.Count, .Columns.Count)).ClearContents
            End If
        End With
    Next
    
    MsgBox "Tüm sayfalardaki gereksiz alanlar temizlenmiştir."
End Sub
 
Deneyiniz.

Kod:
Option Explicit

Sub Temizle()
    Dim Sh As Worksheet
    For Each Sh In ThisWorkbook.Worksheets
        With Sh
            If WorksheetFunction.CountA(.Cells) > 0 Then
                .Range(.Cells(1, 1).End(2)(1, 2), .Cells(.Rows.Count, .Columns.Count)).ClearContents
            End If
        End With
    Next
   
    MsgBox "Tüm sayfalardaki gereksiz alanlar temizlenmiştir."
End Sub
Silmedi Korhan bey
 
Örnek dosyanızı paylaşım sitelerine yükleyip link verebilir misiniz?
 
Silmedi Korhan bey
Getçi yeni bir sayfaya kod yszmadım. Siz yeni bir vba sayfasına kod yazar gibi yazdığınız için olabilir mi? Benim hali hazırda başka işlemlerin olduğu bir vba kod sayfam vardı. Tabloları oluşturdum sayfalarda sonra silme işleminin gerçekleşmesini istediğim yere sizin gönderdiğiniz kodun dim sh as worksheet kısmından, next kısmına kadar olan yeri aldım.
 
Getçi yeni bir sayfaya kod yszmadım. Siz yeni bir vba sayfasına kod yazar gibi yazdığınız için olabilir mi? Benim hali hazırda başka işlemlerin olduğu bir vba kod sayfam vardı. Tabloları oluşturdum sayfalarda sonra silme işleminin gerçekleşmesini istediğim yere sizin gönderdiğiniz kodun dim sh as worksheet kısmından, next kısmına kadar olan yeri aldım.
iş bilgisayarı olduğu için paylaşım izni vermiyor.
 
Görsel paylaşımda bulunabiliyor musunuz?
 
Merhaba,

#8 nolu mesajımdaki hangi kod sizde olumlu sonuç vermişti.

Burada dikkat etmeniz gereken durum sayfalarda 1. satırın başlık olması gerekiyor.
 
Merhaba,

#8 nolu mesajımdaki hangi kod sizde olumlu sonuç vermişti.

Burada dikkat etmeniz gereken durum sayfalarda 1. satırın başlık olması gerekiyor.
Günaydın Korhan Bey.
F8 ile makromu adım adım çalıştırdım. Sayfalarda tablo dışlarında kalan kirli verileri not alıp en son makro sonunda o sayfaların ilgili kolonlarına gidip teker teker silme komutu verdirttim. Sizden alıp işime yarayan kod ise :
Sub Temizle()
Range(Cells(1, 1).End(2)(1, 2), Cells(Rows.Count, Columns.Count)).ClearContents
End Sub

benim düşüncem sizden aldığım kodu herşey çalışıp bittikten sonra makroma eklemek ve bütün sayfalarda tablo dışında kalan kirli verileri silmesiydi ama ben bunu başaramayınca F8 ile adım adım giderek kirli verileri not alıp makro sonunda deker teker kod ile silmek oldu.
Yine de size çok teşekkür ederim çünkü verdiğiniz kod başka bir makromda mutlaka işe yarayacaktır.
 
Geri
Üst