ListBox tan seçilen hücreyi silmek.

Katılım
22 Ekim 2004
Mesajlar
178
Harkese iyi çalışmalar,
ListBox ta A1:A25 aralığını listeliyorum.ListBox tan seçtiğim bir aralığı(hücreyi) butona tıklayarak nasıl silebilirim.
Teşekkürler.
 
Katılım
3 Ağustos 2004
Mesajlar
82
Range("A" & ListBox1.ListIndex + 1).Value = ""
ya da
Range("A" & ListBox1.ListIndex + 1).Delete

:icelim:
 
X

xxrt

Misafir
ListBoxa verileri RowSource özelliği ile alıyorsanız silmeniz birşey ifade etmiyecektir.Asıl Sayfadaki Bilgileri silmeniz gerekmektedir.Bunun İçin Þöyle yapmanı tavsiye ederim.Kodları kendine düzenlersin.
Kod:
'ListBox özellikleri belirleniyor
Private Sub UserForm_Initialize()
a = WorksheetFunction.CountA(Sheets("Sayfa1").Range("A2:A65536")) + 1
ListBox1.RowSource = "Sayfa1!A2:D" & a
ListBox1.ColumnCount = 4
ListBox1.ColumnHeads = True
ListBox1.ColumnWidths = "50;100;150;200"
End Sub
'ListBox'dan seçilen aktif hücre oluyor
Private Sub ListBox1_Click()
Dim i As Integer
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
Sheets("Sayfa1").Select
Sheets("Sayfa1").Range("A" & ListBox1.ListIndex + 2).Select
End If
Next
End Sub
'ListBox Çift Tıklandığında Aktif Satır Siliniyor
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Selection.EntireRow.Delete
End Sub
 
Katılım
22 Ekim 2004
Mesajlar
178
Sayın xxrt,
Yardımınız için teşekkürler.
Yalnız bu kodla tüm satır siliniyor.Oysa ben sadece belli bir aralığı silmek istiyorum.
AB sütununda A1:D1 yada A5:D5 yani blun duğu satırın ilk üç hücresini yada ilk iki hücresini.
Kounuzda aşğıdaki değişikliği yaptım.Bir hücreyi örn.A6 hücresini sildim ama yanındaki iki yada üç hücreyle birlikte silmeyi beceremedim.

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Selection.ClearContents
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
Sn xxrt'nin izniyle şöyle düşündüm. aşağıdaki değişikliği yaparsanız sadece 3 hücreyi silecektir.

Sheets("Sayfa1").Range("A" & ListBox1.ListIndex + 2).Select yerine,

Sheets("Sayfa1").Range(cells(ListBox1.ListIndex + 2,1),cells(ListBox1.ListIndex+2,3).Select

selamlar
 
Katılım
22 Ekim 2004
Mesajlar
178
Sayın leventm,
Söylediğiniz şekilde denedim fakat çalışmadı.Hata verdi.(SyntaxError)
 

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
Selection.EntireRow.Delete kodunuda aşağıdaki şekilde düzenlemeniz gerekiyor

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Selection.ClearContents
End Sub

selamlar
 
Katılım
22 Ekim 2004
Mesajlar
178
Sayın levetm,
Kodu aşağıdaki şekilde denedim fakat yine aynı hatayı verdi.
Private Sub UserForm_Initialize()
a = WorksheetFunction.CountA(Sheets("Sayfa1").Range("A2:A65536")) + 1
ListBox1.RowSource = "Sayfa1!A2:D" & a
ListBox1.ColumnCount = 4
ListBox1.ColumnHeads = True
ListBox1.ColumnWidths = "50;100;150;200"
End Sub
Private Sub ListBox1_Click()
Dim i As Integer
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
Sheets("Sayfa1").Range(cells(ListBox1.ListIndex + 2,1),cells(ListBox1.ListIndex + 2,3).Select
End If
Next
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Selection.ClearContents
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
Sn Alpay

Aşağıdaki satırda bir parantez eksikmiş sorun ondan kaynaklanıyor. Tam yazım şekli aşağıdaki gibidir.
Sheets("Sayfa1").Range(cells(ListBox1.ListIndex + 2,1),cells(ListBox1.ListIndex + 2,3).Select
Doğru şekli

Sheets("Sayfa1").Range(Cells(ListBox1.ListIndex + 2, 1), Cells(ListBox1.ListIndex + 2, 3)).Select

Yazım hatası benden kaynaklanıyor bu nedenle özür dilerim.

selamlar
 
Katılım
22 Ekim 2004
Mesajlar
178
Sn levetm,
Kodunuz sorunsuz çalıştı .Teşekkür ederim.Ayrıca özür dilemenize gerek yok.Ben de bunu farkedebilmeliydim.Sizler elinizden gelen yardımı yapıyorsunuz.
Herşey gönlünüzce olsun.
İyi çalışmalar.
 
Üst