Listbox satır silince sıra numarasının bozulması

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Konu özet olarak;

A sütunundan H sütununa kadar verilerim var. Ancak A1 ve H1'e kadar sütun başlıkları var. Asıl veriler 2. satırdan başlıyor. Aşağıdaki kodlarla silme işlemi yapmaya çalıştığım zaman satırı siliyor ama A sütununda yer alan sıra numaralarında bozulmalar oluyor. Şöyle ki ; silmeye devam ettikçe A sutunun başlığıda silip "0" yazıyor altına 1 yazıyor. Ve bu iki kayıt silinmiyor. A sütununu sildiği için listbox da sütun başlığı "0" olarak görünüyor ayrıca 0 ve 1 silinmediği için yeni kayıt eklenince 2. sıra numarası vererek devam ediyor.



If MsgBox("kayıt silinecek ?", vbCritical + vbYesNo, "Dikkat !") = vbYes Then
sat = ListBox1.List(ListBox1.ListIndex, 8)
Sheets("Veri").Range("A" & sat & ":h" & sat).ClearContents
Sheets("Veri").Range("A2:h65536").Sort Key1:=Sheets("Veri").Range("A2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
Sheets("Veri").Range("A2") = 1
Sheets("Veri").Range("A2").AutoFill Destination:=Sheets("Veri").Range("A2:A" & Sheets("Veri").Range("b65536").End(3).Row), Type:=xlFillSeries
veriler_Click
UserForm4.ListBox1.BackColor = vbWhite
UserForm4.ListBox1.ForeColor = vbRed

MsgBox "Kayıt silindi", vbInformation, "Kayıt Silme "
Else
MsgBox "Kayıt silinmedi", vbInformation, "İptal"
End If
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Dosya daha önce paylaşılan bir dosya vakti zamanında indirmiştim. Benim işimi görecek bir temele sahipti ben de kendime uygun sayıda textler ekledim birkaç düzenlemeler yaptım. Ancak "Silme" konusunda bir sıkıntı var orayı aşamadım.
 

Ekli dosyalar

Son düzenleme:

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Örnek dosyanızı , foruma da ekleyebilir misiniz.
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
2. mesajıma dosya eklenmiştir.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Koddaki bu satırı
Kod:
Sheets("Veri").Range("A2").AutoFill Destination:=Sheets("Veri").Range("A2:A" & Sheets("Veri").Range("b65536").End(3).Row), Type:=xlFillSeries
bununla değiştirip deneyiniz.
Kod:
Sheets("Veri").Range("A2", "A" & Sheets("Veri").Range("B65536").End(3).Row).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Verdiğiniz kod ile listbox sütunlarını korumayı başardım ama listbox da kalan 1 sıra numarasını silemiyor. Yeni veri eklenince 2'den devam ediyor.
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Ek olarak başlıklar listbox başlığı olarak değil de listbox içinde bir alt satır da görünüyor.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Verdiğiniz kod ile listbox sütunlarını korumayı başardım ama listbox da kalan 1 sıra numarasını silemiyor. Yeni veri eklenince 2'den devam ediyor.
O zaman şu şekilde sorguya almak gerekecek.
Kod:
If Sheets("Veri").Range("B65536").End(3).Row > 1 Then
    Sheets("Veri").Range("A2") = 1
    Sheets("Veri").Range("A2", "A" & Sheets("Veri").Range("B65536").End(3).Row).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
End If
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Yardımlarınız için teşekkür ederim ama yine stabil olmuyor. 2. satırı silmek istediğimde bu kodlar sarıya boyanıyor. Ve silse dahi excelden siliniyor ama listboxda görünüyor. Belki de diğer kodlarda bir uyumsuzluk vardır.

Sheets("Veri").Range("A2").AutoFill Destination:=Sheets("Veri").Range("A2:A" & Sheets("Veri").Range("b65536").End(3).Row), Type:=xlFillSeries
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Anlamadım verdiğim kodlar hem sayfadan hemde Listbox dan siliyor ve yeni sıra numarası veriyor , siz sıra numaralarının değişmemesini mi istiyorsunuz.

Kod:
Private Sub CommandButton3_Click()
    If ListBox1 = Empty Then
        MsgBox "Veri kaydı bulunamamıştır.", vbExclamation, "Dikkat !"
        Exit Sub
    End If
       
    If ListBox1.ListIndex < 0 Then
        MsgBox "Lütfen listeden veri seçimi yapınız.", vbExclamation, "Dikkat !"
        Exit Sub
    End If
       
    If MsgBox("Seçtiğiniz kayıt silinecektir onaylıyor musunuz ?", vbCritical + vbYesNo, "Dikkat !") = vbYes Then
        sat = ListBox1.List(ListBox1.ListIndex, 8)
        Sheets("Veri").Range("A" & sat & ":h" & sat).ClearContents
        Sheets("Veri").Range("A2:h65536").Sort Key1:=Sheets("Veri").Range("A2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
       
        If Sheets("Veri").Range("B65536").End(3).Row > 1 Then
            Sheets("Veri").Range("A2") = 1
            Sheets("Veri").Range("A2", "A" & Sheets("Veri").Range("B65536").End(3).Row).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
        End If
        veriler_Click
        UserForm4.ListBox1.BackColor = vbWhite
        UserForm4.ListBox1.ForeColor = vbRed
               
        MsgBox "Kayıt silme işlemi tamamlanmıştır.", vbInformation, "Kayıt Silme İşlemi"
    Else
        MsgBox "Kayıt silme işlemi iptal edilmiştir.", vbInformation, "İşlem İptali"
    End If
End Sub
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Emre hocam çok teşekkürler bu sefer sıralama tam uyumlu oldu. Sil butonundaki sorun ortadan kalktı. Sadece Listbox başlığının seçilememesi kaldı yani en üst başlık kısmında değil de bir alt satırında görünüyor başlıklar. Başlık sütunlarının içi ise boş görünüyor.
Yukarıda vermiş olduğunuz kodlar için teşekkür ederim, emeğinize sağlık.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Sizin dosyanızda listbox'a veriler ListBox1.AddItem yöntemi ile alınıyor bu özellik sadece rowsource metodu ile veri aldığınızda olur.
bunun dışında yöntemlerde listboxın üzerine,yani userforma labeller koyarak başlık yapabilirsiniz.

örnek olarak. Add yöntemi kullanılmasaydı şu kodlar ile başlıklar alınabilirdi.
Kod:
Sub veriler_Click_Emr()
    ListBox1.Clear
    ListBox1.ColumnCount = 8
    ListBox1.ColumnHeads = True
    ListBox1.ColumnWidths = "20;120;80;80;80;80;80;80"
    ListBox1.ForeColor = vbBlue
    ListBox1.RowSource = "A2:H" & Sheets("Veri").Range("A65536").End(3).Row
End Sub
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Eğer labellerle yaparsam sanırım arama konusunda sıkıntı doğurur.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Kodları tam olarak incelemedim ama labellerle yapmak sıkıntı oluyorsa diğer söylediğim yöntem ile alın verileri (ama labellerle sıkıntı olacağınıda sanmıyorum)
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Dediğinizi deneyeceğim. Teşekkür ederim.
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Hocam arama kutucuğu a1 ve h1 arasında yazılı olan başlık içerisinde arama yaptığı için sorun oluyor. Kaydetme de sorun yok ama silme veya düzeltme işleminde başlıklar ilk satıra çıkıyor.Halbuki ben hiç görünmesini istemiyorum çünkü dediğiniz gibi listboxun üzerine label yerleştirdim o işimi görüyordu. Ama silme veya düzeltme işleminde bu başlıkların ilk satıra çıkması onları seçilebilir yapıyor ve birileri bunu silerse arama kutucuğu işe yaramaz. Sorun bundan kaynaklı.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Kodlarınizdaki Sub veriler_Click() prosedüründeki for i=1 yazan yerdeki 1 olan yeri 2 yapın ve tüm kodlarda ListBox1.ColumnHeads = True yazan satırları True yazan yeri False yapın ,yeterlidir.
 

basaksehirli

Altın Üye
Katılım
8 Mart 2019
Mesajlar
105
Excel Vers. ve Dili
2016 64 Bit
Altın Üyelik Bitiş Tarihi
05-05-2025
Emre hocam çok teşekkür ediyorum. Konu: Çözüldü olarak işaretlenebilir. Gerçekten bu sitede arkadaşlardan her zaman yardım gördüm. Hiçbir sorum havada kalmadı. Tekrar teşekkür ediyorum, iyi akşamlar.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Rica ederiz , bu güzel sözleriniz içinde ben size tesekkür ederim, iyi çalısmalar.
 
Üst