KOŞULLU HÜCRE SEÇMEK / KOŞULLU SATIR SEÇMEK

Katılım
6 Mayıs 2014
Mesajlar
264
Excel Vers. ve Dili
office 365
Altın Üyelik Bitiş Tarihi
23-06-2021
Aşağıdaki konularda makro kodu düzenlemeye çalışıyorum. İlgilenen arkadaşlara teşekkürler. Dosya ektedir.

1- Ekteki dosyanın 1 numaralı sayfasında, eğer A sütunu boş ise E ve F sütunlarındaki dolu hücrelerin tamamını seçmek istiyorum. Olması gereken sonucu sarı ile belirttim.
2- Ekteki dosyanın 2 numaralı sayfasında, eğer A sütunu dolu ise E sütunundaki boş hücrelerin tamamını seçmek istiyorum. Olması gereken sonucu kırmızı ile belirttim.
3- Ekteki dosyanın 3 numaralı sayfasında, eğer A sütunu boş ve E sütunu dolu ise A sütunundaki ilk boş satırdan başlamak üzere aşağı doğru şarta uyan bütün satırları seçmek ve silmek istiyorum. Şarta uyan satırları yeşil ile belirttim.
 

Ekli dosyalar

Katılım
6 Mayıs 2014
Mesajlar
264
Excel Vers. ve Dili
office 365
Altın Üyelik Bitiş Tarihi
23-06-2021
Elinize sağlık. Yalnız 3 numaralı sayfadaki kod için düzeltme yapılabilir mi? Şöyle ki; Tabloda formüller olduğunda ve satır sayısı fazla olduğunda silme işlemi uzun sürüyor. Bunun için tek tek silmek değil de şarta uyan satırların tamamını tek seferde seçip sonra bu satırlar için sil komutu verilebilirse daha hızlı sonuç alınır herhalde.
Normalde
Kod:
Rows("11:423521").Select
    Selection.Delete Shift:=xlUp
şeklinde satırları manuel olarak seçip silebiliyorum. Mesela yukarıdaki kodun başlangıç satırı olan 11 yerine, A sütununda veri olmayan ve E sütununda veri olan ilk satır kod vasıtası ile otomatik tespit edilirse; son satır için ise E sütununda veri olan son satır tespit edilirse, başlangıç ve son satırları belli olduktan sonra bu ilgili satırları tek seferde toplu olarak seçip silmek daha hızlı olur diye düşünmüştüm. Bunun için yapabileceğiniz bir şey varsa memnun olurum.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,442
Excel Vers. ve Dili
2019 Türkçe
A sütununda ilk boş hücreden sonra dolu bir hücre olma olasılığı yok mu?
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,442
Excel Vers. ve Dili
2019 Türkçe
Öyleyse 3. sayfanın kod kısmındaki kodları silin aşağıdakileri kopyalayın.
Kod:
Sub SatirSil()
    Dim Say As Long
    Dim Bak As Long
    Dim Alan As String
    Say = Cells(Rows.Count, "A").End(xlUp).Row
    For Bak = 1 To Say
        If Cells(Bak, "A") = "" And Cells(Bak, "E") <> "" Then
            Exit For
        End If
    Next
    Rows(Bak & ":" & Rows.Count).Delete
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif;

C++:
Sub Deneme_1()
    Son_A = Sheets("1").ListObjects("Tablo1").Range.Columns(1).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Son = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Range("E" & Son_A + 1 & ":F" & Son).Select
End Sub

Sub Deneme_2()
    Son_E = Sheets("2").ListObjects("Tablo13").Range.Columns(5).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Son = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Range("E" & Son_A + 1 & ":E" & Son).SpecialCells(xlCellTypeBlanks).Select
End Sub

Sub Deneme_3()
    Son_A = Sheets("3").ListObjects("Tablo14").Range.Columns(1).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Son = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Range("A" & Son_A + 1 & ":A" & Son).SpecialCells(xlCellTypeBlanks).EntireRow.Select
End Sub
 
Katılım
6 Mayıs 2014
Mesajlar
264
Excel Vers. ve Dili
office 365
Altın Üyelik Bitiş Tarihi
23-06-2021
Korhan Bey, size de teşekkür ederim. Saygılar
 
Üst