Satır Sütun Seçme ve Silme

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
546
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Merhabalar


Her seferinde hocalarımıza sormaktansa şu kodları elimin altında şablon
gibi hazır bulundurmak istiyorum. Çünkü her an ihtiyaç olabiliyor.

Lütfen DENEME adlı sayfa için, ya da Sayfa1 için, şu 7 kodu en sade
haliyle yazar mısınız:

Sayfanın adı: DENEME ya da Sayfa1 (hangisi kolayınıza gelirse)


1.KOD
A1 hücresinden F1 hücresine kadar olan alanı seçip, silmeyi
(ClearContents)


2. KOD
A1 hücresinden sağa doğru son dolu sütuna kadar otomatik seçip, bu alanı silmeyi


3.KOD
A1 hücresinden F1 hücresine kadar, ve aşağıya doğru son dolu satıra
kadar otomatik seçip, bu alanı silmeyi (Bu özellikle Borders.Color gibi komutlar için ihtiyaç oluyor)


4.KOD
A1 hücresinden A15 hücresine kadar olan alanı seçip, bu alanı silmeyi


5.KOD
A1 hücresinden aşağıya doğru son dolu satıra kadar otomatik seçip, bu
alanı silmeyi


6.KOD
A1 hücresinden A15 hücresine kadar, ve sağa doğru son dolu sütuna kadar
otomatik seçip, bu alanı silmeyi


7.KOD
A1 hücresinden sağa doğru son dolu sütuna kadar, ve aşağıya doğru son
dolu satıra kadar otomatik seçip, bu alanı silmeyi



Teşekkürler
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

VBA tarafında işlem yapmak için (zorunlu durumlar dışında) SEÇİM yapmanıza gerek yoktur.

1. Kod;

Alternatif-1;
C++:
Sheets("Sayfa1").Range("A1:F1").ClearContents
Alternatif-2;
C++:
Sheets("Sayfa1").Range("A1:F1").Value = Empt
Alternatif-3;
C++:
Sheets("Sayfa1").Range("A1:F1").Value = ""
Alternatif-4;
C++:
Range("Sayfa1!A1:F1").ClearContents
Alternatif-5;
C++:
[Sayfa1!A1:F1] = ""
2. Kod;

C++:
With Sheets("Sayfa1")
    .Range(.Range("A1"), .Range("A1").End(xlToRight)).ClearContents
End With
3. Kod;

C++:
With Sheets("Sayfa1")
    .Range("A1").Resize(.Cells(.Rows.Count, 1).End(3).Row, 6).ClearContents
End With
4. Kod; (1. kodun benzeri bunu üstteki örneklere bakarak kendiniz yazmayı deneyiniz.)

5. Kod;

C++:
With Sheets("Sayfa1")
    .Range("A1").Resize(.Cells(.Rows.Count, 1).End(3).Row).ClearContents
End With
6. Kod;

C++:
With Sheets("Sayfa1")
    .Range(.Range("A1:A15"), .Range("A1").End(xlToRight)).ClearContents
End With
7. Kod;

C++:
With Sheets("Sayfa1")
    .Range("A1").Resize(.Cells(.Rows.Count, 1).End(3).Row, .Range("A1").End(xlToRight).Column).ClearContents
End With
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ek olarak eğer veri girişinde tablo düzenine uyuyorsanız aşağıdaki kısa kodları kullanabilirsiniz.

C++:
Sheets("Sayfa1").Range("A1").CurrentRegion.ClearContents
C++:
Sheets("Sayfa1").UsedRange.ClearContents
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Günaydın,

Bu arada belirtmek isterim. Ben temel kodları paylaştım. Farklı bakış açılarıyla farklı kodlar kurgulanabilir.
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
546
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Değerli hocam günaydın. Bilgisayar başına geçince, kodlarınızı özenle ve titizlikle deneyeceğim.

Korkarım kendimi ifade edemedim. Sanıyorum eksik bilgi verdim. Hatalıyım.

Eğer son dolu satır, ya da son dolu sütun diye belirtmemişsem;
A1:F1 arası diye bahsederken, tüm sütunların seçilmesini,
A1:A15 arası diye bahsederken, tüm satırların seçilmesini kast etmiştim.

Kodlarınızı denerken de kolay anlayabilmem adına, Clear yerine, Borders.Color = 13948110 komutunu kullanacağım.

Korhan hocam emeklerinize sağlık. Denemeler yaptıktan sonra tüm geri dönüşlerimi dile getireceğim.

Teşekkür ederim.
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
546
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Hocam merhaba

Kodlarınızın hepsini denedim. “Alan” kelimesi yerine “aşağıya doğru tüm alan” ya da “sağa doğru tüm alan” yazsaydım, daha doğru yazmış olacaktım.

Vaktiniz müsait olduğunda şu kodları yeniden yazar mısınız?

1. KOD
A1’den F1’e kadar seçip, aşağıya doğru tüm alan (sonuna kadar)

2. KOD
A1’den sağa doğru son dolu sütuna kadar seçip,
aşağıya doğru tüm alan (sonuna kadar)

3. KOD
Sorun yok

4. KOD
A1’den A15’e kadar seçip, sağa doğru tüm alan (sonuna kadar)


5. KOD
A1’den aşağıya son dolu satıra kadar seçip, sağa doğru tüm alan (sonuna kadar)


6. KOD
Sorun yok

7. KOD
Sorun yok
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Mesela aşağıya doğru tüm alan dediğinizde dolu alanı mı kast ediyorsunuz?
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
546
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Hocam sorunuz güzel, şöyle izah edeyim.

Sizin gibi değerli hocalarımızın oluşturduğu kodlarla çalışan değişik dosyalarım var. Bu çeşitli dosyalar çeşitli alanlara veriler döküyor.
Ama farklı farklı yerlerde işte.

Yapmak istediğim bu dökülen alanı önce temizlemek,
sonra temizlenmiş bu alana Borders.Color = 13948110 uygulamak. Ki yazıcıdan çıkınca güzel görünsün. Bunu kendim yapabilmek.

Bu olay hoşuma gidiyor. Açık griyle çerçevelenmiş bir alan daha güzel görünüyor. Amacım bunu her istediğimde kendi başıma yapabilmek.


İşte bu doğrultuda silme yaparken, örnek "öncd A'dan K'ye tüm alanı sileyim
ve ondan sonra yine A'dan K'ye sadece son dolu satıra kadar çerçevelendireyim" diye aklımdan geçiriyorum. Çünkü sildiğim tüm alanı çerçevelendirirsem yanlış olur, gereksiz olur, yazıcıdan boş çerçevelerle dolu sayfalar çıkmış olur.

Bundan dolayı Hem belli alan, hem son dolu satır, hem son dolu sütun gibi ayrıntıları düşünüp, bu konuyu açmaya karar vermiştim.


Sorunuzun cevabına gelince hem tüm alan, hem de son dolu satır, son dolu sütun gibi komutları olan kodlar lazım. (Hem silme hem de çerçeveleme işlemleri için) Yani hepsi de lazım. İlk mesajımda yazdıklarımın hepsi (aralık olarak değil de alansal olarak) elimin altında durmalı ki ihtiyaç olduğunda kendim yapabileyim
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

1. Kod;

Alternatif-1;
C++:
Sheets("Sayfa1").Range("A:F").ClearContents
Alternatif-2;
C++:
Sheets("Sayfa1").Range("A:F").Value = Empt
Alternatif-3;
C++:
Sheets("Sayfa1").Range("A:F").Value = ""
Alternatif-4;
C++:
Range("Sayfa1!A:F").ClearContents
Alternatif-5;
C++:
[Sayfa1!A:F] = ""
2. Kod;

C++:
With Sheets("Sayfa1")
    .Range(.Range("A1"), .Range("A1").End(xlToRight)).Resize(.Rows.Count).ClearContents
End With
4. Kod;

Alternatif-1;
C++:
With Sheets("Sayfa1")
    .Range("A1:A15").Resize(, Columns.Count).ClearContents
End With
Alternatif-2;
C++:
With Sheets("Sayfa1")
    .Rows("1:15").ClearContents
End With
Alternatif-3;
C++:
With Sheets("Sayfa1")
    .Range("A1:A15").EntireRow.ClearContents
End With
Alternatif-4;
C++:
With Sheets("Sayfa1")
    .[1:15].ClearContents
End With
5. Kod;

C++:
With Sheets("Sayfa1")
    .Range("A1").Resize(.Cells(.Rows.Count, 1).End(3).Row, .Columns.Count).ClearContents
End With
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
546
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Korhan hocam önce emeklerinize sağlık. Çok teşekkür ederim.
İlk mesajınızdan itibaren hepsini deneyip, hangi kod hangi alanı, aralığı kapsıyor şeklinde başlıklar koyarak notumu arşivime aldım.

Kolay anlamam için
Tek satır ya da tek sütunluk yere ARALIK
Bir bölgeyi kapsıyorsa oraya da ALAN adını verdim.

Hocam birkaç sorum olacak.
3 nolu mesajınızda
“eğer veri girişinde tablo düzenine uyuyorsanız”
diye bir öneriniz
Ve iki farklı kod satırınız vardı.

Veri girişinde tablo düzenine uymak ne demektir?
Bir de diğer kodlarınızda olmayan CurrentRegion ve UsedRange komutları ne anlama gelir?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Tablo düzenine uygun veri girişi (DÜZENLİ);

239396


Tablo düzenine uygun olmayan veri girişi (DÜZENSİZ);

239397

Bu tarz tablolar oluşturup aşağıdaki kodları çalıştırıp sonucu gözlemleyiniz.

C++:
Sub Test_1()
    Sheets("Sayfa1").UsedRange.Select
End Sub

Sub Test_2()
    Sheets("Sayfa1").Range("A1").CurrentRegion.Select
End Sub
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
546
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Korhan hocam merhaba

Örnek olarak 9 nolu mesajınızdaki, 4. Kod ve Alternati-1 bölümündeki kodlarınızda,
Denemek için With ve End With komutlarını kaldırdım. İkinci satırı birinci satırın yanına aldım ve yine aynı işi yaptı.

O zaman With ve End With’in başka bir sebebi olmalı diye düşündüm.

With ve End With satırlarını eklememizin sebebi nedir hocam?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
With-End With blogu o dosyada, o sayfada, o alanda, o hücrede, o nesnede.... işlem yap anlamına gelmektedir.
 
Üst