Sütunda belirlediğim değer aralığını silmek.

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,242
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selam arkadaşlar,

"E" sütununda "E2" den başlayarak sıralı şekilde giden seri numaralarım var. Ben Textbox1 e başlangıç numarası girip ve Textbox2 ye de bitiş numarası girip bu aralığı sildirmek istiyorum.

Ã?rnek olarak;

Textbox1 = 100
Textbox2 = 200 girip bir tuşa bastığımda bu aralığı bulup değerlerin bulundukları satırları komple silmek için nasıl bir kod gerekiyor.

İyi çalışmalar dilerim. :hey:
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu deneyin.

[vb:1:adcdd32f6f]Private Sub CommandButton1_Click()
On Error GoTo 10
ilk = [e1:e65536].Find(TextBox1.Value).Row
son = [e1:e65536].Find(TextBox2.Value).Row
Rows(ilk & ":" & son).Delete
Exit Sub
10 MsgBox "silinecek aralık bulunamadı"
End Sub
[/vb:1:adcdd32f6f]
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,242
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Teşekkür ederim. :hey:
 

Korhan Ayhan

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

Vermiş olduğunuz kodlar verdiğim seri aralığını siliyor. Fakat şöyle bir sorun oluştu. Ben silinmesi gereken aralığı 10 ve 100 olarak belirttiğimde aşağıdaki sıralamada yanlış değerleri siliyor. Hangi değer aralığını veriyorsam onları silmesini nasıl sağlayabiliriz.

Diyelimki benim sayfadaki seri numaralarım aşağıdaki şekilde olduğunda silinmemesi gereken değerlerde siliniyor. Bunu kodda nasıl bir değişiklik yaparsak önleyebiliriz.

100
101
102
103
104
105
10
11
12
13
14
15
....


10-100 dediğim zaman 10 dan başlayarak 11,12,13,...100 e kadar olan değerleri silecek şekilde olması gerekiyor.

İyi çalışmalar dilerim. :hey:
 
Katılım
30 Haziran 2005
Mesajlar
149
isterseniz bir de bunu deneyin
Kod:
Private Sub CommandButton1_Click()

lastRow = Range("E65536").End(xlUp).Row

On Error GoTo 10
For I = 1 To lastRow
    If Val&#40;Range&#40;"E" & I&#41;&#41; >= Val&#40;TextBox1&#41; And Val&#40;Range&#40;"E" & I&#41;&#41; <= Val&#40;TextBox2&#41; Then
        Rows&#40;I&#41;.Clear
    End If
Next I

sayac = 0
For I = 1 To lastRow
    sayac = sayac + 1
    If Range&#40;"E" & I&#41; = "" Or IsEmpty&#40;Range&#40;"E" & I&#41;&#41; Then
        Rows&#40;I&#41;.Delete
        If Not &#40;I = 1&#41; And sayac < lastRow Then
            I = I - 1
        End If
    End If
Next I
Exit Sub

10 MsgBox "silinecek aralik bulunamadi"
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Kodun doğru çalışması için textbox1 de ilk değer, textbox2de son değer olmalıdır. Eğer böyle bir karışıklık söz konusu ise kodu aşağıdaki deneyin.

[vb:1:91bd7b4e62]Private Sub CommandButton1_Click()
On Error GoTo 10
ilk = [e1:e65536].Find(TextBox1.Value).Row
son = [e1:e65536].Find(TextBox2.Value).Row
if son>ilk then Rows(son & ":" & ilk).Delete
if son<ilk then Rows(ilk & ":" & son).Delete
Exit Sub
10 MsgBox "silinecek aralık bulunamadı"
End Sub[/vb:1:91bd7b4e62]
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,242
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Teşekkür ederim. :mutlu: :hey:
 
Üst