boşsa silme

Katılım
27 Şubat 2008
Mesajlar
307
Excel Vers. ve Dili
Office 2016
Sub bossa_sil()
For sat = 13 To 50
If Cells(sat, 9) = "" Then
Rows(sat).Delete
End If
Next
End Sub

Yukarıdaki kod eğer "I13:I50" arasında boş olan hücre varsa, satırı siliyor.
Ben bu I13:ı50 kısmını inputbox oluşturarak silebilirmiyim.(kendim a1:a50 yazacağımda makroya girmeden açılır kutu gelip oradan girebilirmiyim.)
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
İsteğiniz olabilir mi bilmiyorum ama satır silme işlemini bu belirttiğiniz şekilde yaparsanız arka arkaya iki boşluk olduğunda ikincisini silmez. Düzgün olması için 13'ten 50'ye değil 50'den 13'e doğru işlem yaptırmalısınız:

For sat = 50 to 13 Step -1

şeklinde kullanabilirsiniz.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Kod:
Sub Test()
    Dim myRange As Range
    Set myRange = Application.InputBox("Mouse ile aralık seçin...", "Seçim ...", Type:=8)
    
    For i = myRange.Cells(myRange.Cells.Count).Row To 1 Step -1
        If myRange.Cells(i) = "" Then Rows(myRange.Cells(i).Row).Delete
    Next
End Sub
.
 
Katılım
27 Şubat 2008
Mesajlar
307
Excel Vers. ve Dili
Office 2016
Teşekkürler elinize sağlık. Ama bir isteğim daha var eğer = boşsa kısmını elle girmem gerekse örneğin "ali" yapacak olsam inputbox ile nasıl yaparım. "" kısmına girilecek veriyi elle gireceğim
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,784
Excel Vers. ve Dili
Microsoft 365 Tr-64
C++:
Sub Test()
Dim myRange As Range
    Set myRange = Application.InputBox("Mouse ile aralık seçin...", "Seçim ...", Type:=8)
    Silinecek= InputBox1("Silinecek İfadeyi Tanımlayın")
    For i = myRange.Cells(myRange.Cells.Count).Row To 1 Step -1
        If myRange.Cells(i) = Silinecek Then Rows(myRange.Cells(i).Row).Delete
    Next
End Sub
 
Katılım
27 Şubat 2008
Mesajlar
307
Excel Vers. ve Dili
Office 2016
Silinecek= InputBox1("Silinecek İfadeyi Tanımlayın")

InputBox1 kısmında sub or defined not found uyarısı veriyor ne eklemem lazım
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
1 karakterini silip, deneyin...

.
 
Katılım
27 Şubat 2008
Mesajlar
307
Excel Vers. ve Dili
Office 2016
1 değerini silince uyarı kalktı ama, bu şekilde çalışmıyor.
If myRange.Cells(i) = "Silinecek" Then Rows(myRange.Cells(i).Row).Delete
Şekilde işlem yaptım yine makro çalışmadı.
Ama If myRange.Cells(i) = 12 Then Rows(myRange.Cells(i).Row).Delete
diye yazıyorum işlem yapıyor.
 
Katılım
27 Şubat 2008
Mesajlar
307
Excel Vers. ve Dili
Office 2016
Denemiştim ama makroda uyarı vermiyor . fakat şarta uyan verinin satırını silme yapmıyor
 
Katılım
27 Şubat 2008
Mesajlar
307
Excel Vers. ve Dili
Office 2016
If myRange.Cells(i) = Silinecek Then Rows(myRange.Cells(i).Row).Delete BENİM GÖNDERMİŞ OLDUĞUM FORMÜL BU ŞEKİLDE

If myRange.Cells(i) > Silinecek Then Rows(myRange.Cells(i).Row).Delete BU ŞEKİLDE FORMÜL ÇALIŞMIYOR SATIRI SİLME İŞLEMİNİ YAPMIYOR AMA

If myRange.Cells(i) < Silinecek Then Rows(myRange.Cells(i).Row).Delete BU ŞEKİLDE SATIR SİLME İŞLEMİNİ YAPIYOR.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Bu kod işlevsel olup ihtiyacınızı karşılar.
Kod:
[I13:I50].SpecialCells(4).Delete Shift:=xlUp
 
Üst