Veriyi Bul Hücre Sil Yukarıya ötele de sorun...

Katılım
15 Mart 2005
Mesajlar
58
Merhaba herkese
buraya yazan diğer arkadaşlar gibi benim de bir sorum olacak

aşağıdaki kodlarla sayfa üstündeki veriyi buluyorum ve
aynı satırdaki bazı verileri siliyorum ama
son iki satırı silemiyorum döngüde bir hata var
kod şu :
'**************************
Dim silinecek As Range
For Each silinecek In Range("a1:a" & WorksheetFunction.CountA(Range("a1:a65000")))
If StrConv(silinecek.Value, vbUpperCase) = StrConv(TextBox17.Value, vbUpperCase) Then
silinecek.Select
TextBox17.Value = ActiveCell.Offset(0, 0).Value
Range(ActiveCell.Offset(0, 0).Address(False, False) & ":" & ActiveCell.Offset(0, 16).Address(False, False)).Delete Shift:=xlUp
UserForm2.TextBox17.Value = "silindi"
Exit Sub
End If
Next silinecek
'*************************
sizce burada hatam nerededir ...
şimdiden teşekkür ederim...
 

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
Koddaki hatayı söylemek için dosyanızı görmekte fayda olduğunu düşünüyorum. Birde aşağıdaki şekilde deneyin.

[vb:1:a238d55237]Private Sub CommandButton1_Click()
Dim silinecek As Range
For Each silinecek In Range("a1:a" & WorksheetFunction.CountA(Range("a1:a65000")))
If StrConv(silinecek.Value, vbUpperCase) = StrConv(TextBox17.Value, vbUpperCase) Then
sat = silinecek.Row
Range("a" & sat & ":q" & sat).Delete
UserForm2.TextBox17.Value = "silindi"
Exit Sub
End If
Next silinecek
End Sub[/vb:1:a238d55237]
 
Katılım
15 Mart 2005
Mesajlar
58
sayın leventm değerli cevabınız için teşekkür ederim...
yazmış olduğunuz kodlarda da aynı işlemi yapıyor...
lakin probem aynı şekilde devam ediyor...

bende sorunun kaynağını buldum ; a1,a2,b1,b2 hücreleri boş değer içeriyor..
ve bu iki değeri atlaması son iki satırı silmiyor yani kod atlıyor...
ben de sorunu geçici olarak bu hücreleri doldurarak çözdüm şimdilik...

değerli cevabınız için teşekkür ederim....
 

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
Tamam sebep şimdi anlaşıldı. Bu durumda

WorksheetFunction.CountA(Range("a1:a65000")) satırını aşağıdaki ile değiştirin.

[a65536].end(xlup).row

[vb:1:93a49c63d4]Private Sub CommandButton1_Click()
Dim silinecek As Range
For Each silinecek In Range("a1:a" & [a65536].end(xlup).row)
If StrConv(silinecek.Value, vbUpperCase) = StrConv(TextBox17.Value, vbUpperCase) Then
sat = silinecek.Row
Range("a" & sat & ":q" & sat).Delete
UserForm2.TextBox17.Value = "silindi"
Exit Sub
End If
Next silinecek
End Sub [/vb:1:93a49c63d4]

Not:kendi kodunuzda da aynı değişikliği yapmanız yeterlidir.
 
Katılım
15 Mart 2005
Mesajlar
58
tekrar teşekkürler sayın leventm
aynen dediğiniz gibi uygulayınca sorun kalmadı...
 
Üst