• Web sitemizin SORU-CEVAP bölümünde dosya yüklemek ve dosya indirmek ÜCRETSİZ'dir.
    Gizlilik kapsamında, sadece site yöneticilerimizin ve üyenin kendisinin görebileceği ÜCRETLİ ÖZEL DESTEK alanımız mevcuttur.

Çözüldü Listview de silme butonu hakkında

REKLAM

Cengizhan

VIP
VIP
Kullanıcı
Yaş
38
Versiyon
  1. Excel 2016
  2. Excel 2019
  3. Ofis 365
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

merhaba üstatlarım bir ricam olacaktı
dosyada listvievdeki verilerin birine tıklatınca command butonu ile silmek istiyorum ama id no yada index no vermeden direk seçip sil deyince hem listeden hemde sayfadan silmesini istiyorum
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Ekli dosyalar (Dosyaları İndirmek İçin Beğenmeniz Gerekir)

  • Listview silme.rar
    375.5 KB · Görüntüleme: 3

Admin

Kurucu
Kurucu
Yaş
42

Reputation:

Dosyanızı incelemedim ama, index numarası vs işlemi yapmadan buton aracılığıyla sildirme yapmak isterseniz, ListView click olayında, ilgili verinin olduğu satırı seçtirin.

ListView'de bu seçim sağlandıktan sonra, ActiveCell.EntireRow.Delete kodu işinizi görecektir.
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Cengizhan

VIP
VIP
Kullanıcı
Yaş
38
Versiyon
  1. Excel 2016
  2. Excel 2019
  3. Ofis 365
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

Dosyanızı incelemedim ama, index numarası vs işlemi yapmadan buton aracılığıyla sildirme yapmak isterseniz, ListView click olayında, ilgili verinin olduğu satırı seçtirin.

ListView'de bu seçim sağlandıktan sonra, ActiveCell.EntireRow.Delete kodu işinizi görecektir.
Aynı anda sayfadan da silermi bu kod ile ?
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Admin

Kurucu
Kurucu
Yaş
42

Reputation:

Evet siler. Ama burada önemli olan click ya da dbclick olayında sayfada ilgili verinin olduğu yeri seçtirmek.
Silmek istenilen veri ListView'den seçildiğinde, sayfadaki yeride seçilmiş olacak arka planda..
Verdiğim kodda, aktif hücrenin tüm satırının silinmesi işlevini yerine getirecektir.

Siz ListView'den seçim yaptırmaz, direk bu kodu butona atarsanız; o anda sayfada hangi hücre aktifse, o hücrenin yer aldığı satır silinir, dikkat edin.
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Cengizhan

VIP
VIP
Kullanıcı
Yaş
38
Versiyon
  1. Excel 2016
  2. Excel 2019
  3. Ofis 365
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

anladım hocam listboxda yapabiliyorumda demek listvievde olmuyor teşekkür ederim aslında bi kod var listboxda işe yarıyor yazsam buraya listviewe uyarlayabilirmiyiz ?
Kod:
sor = MsgBox("SEÇİLEN KAYIT SİLİNECEK... Onaylıyormusunuz..?", vbYesNoCancel, "bildiri")
If sor = vbNo Then Exit Sub
If sor = vbCancel Then Exit Sub
For e = 0 To ListBox2.ListCount - 1
    If ListBox2.Selected(e) Then
        ara = ListBox2.List(e, 0)
        Sheets("ENVARTER").Range("A:A").Find(what:=ara, lookat:=xlWhole).EntireRow.Delete
    End If
Next
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Admin

Kurucu
Kurucu
Yaş
42

Reputation:

ListBox'ta da olmaz. Bir hücrenin yer aldığı referansı göstermeden nesnenin kendisinden silme bekleyemezsiniz ki.
Verdiğiniz kodlarda zaten bu arama işlevi yapılmakta ve ilgili satır bulunduktan sonra silmek gerçekleşmekte.

Kod:
Sayfa1.Rows(Me.ListView1.ListItems(Me.ListView1.SelectedItem.Index).SubItems(8)).Select

A:I aralığında verilerin olduğu bir tablodan ListView'e aktarım yapıldığını düşünün.
Üstteki kodda yer alan SubITems(8) değeri, ilgili satır numarasını vermektedir. Yani verilerin bittiği sütunun hemen bir sonraki alanının belirtilmesi.

Siz bu işlemi yaptırıp, ilk verdiğim kod ile silme yapabilirsiniz. Ya da kodu aşağıdaki gibi revize ederseniz, sayfadan seçim yaptıramamadan direk silme işlemide yaptırabilirsiniz.

Kod:
Sayfa1.Rows(Me.ListView1.ListItems(Me.ListView1.SelectedItem.Index).SubItems(8)).EntireRow.Delete

Yani işin özeti, bu iş mutlaka verinin doğru olarak bir şekilde bulunmasından geçer. Siz eğer birden fazla veriyi tek bir komutla silmek isterseniz, o zaman verdiğiniz koddaki gibi bir döngü yapmanız lazım.

Şu anda dosya indirmek ve uyarlamak için müsait değilim ama verdiğim yapıdan yola çıkabilirsiniz diye düşünüyorum.
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Ömer BARAN

Kurucu
Yönetici
Kurucu
Versiyon
  1. Excel 2013
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

Sayın @Cengizhan .

Textbox'u kullanarak ARAMA yapıldığında Listview içeriği filtreleniyor.
Bu durumda ilgili satırın, Excel sayfasındaki hangi satırdaki veri olduğu nasıl anlaşılacak.
ID/INDEX no gibi benzersizlik garantisini sağlayacak ve sayfa ile Listview satırı arasındaki ilişkiyi kuracak şey ne olacak o zaman ?

ARAMA işlemi yapmadan tüm liste Listview nesnesinde görünüyorken ve sıralama gibi işlem de yoksa mesele değil.
Ancak daha sonra bu tür durumlar oluştuğunda sorun yaşarsınız.

Listede benzersizlik garantisi varsa SORGU yapalmışsa da birşeyler yapılabilir.
Yani satırlardaki (bütün olarak) veriler TEKİL midir? Mükerrer satır olma ihtimali var mıdır?

Herneyse; sorgu uygulanmadan SİLME işlemi istiyorsanız aşağıdaki kodu kullanabilirsiniz.

C#:
Private Sub CommandButton1_Click()
Set p = Sheets("Personeller")
If Me.ListView1.SelectedItem.Index >= 1 Then
    Me.ListView1.ListItems.Remove (Me.ListView1.SelectedItem.Index)
    p.Range("A" & Me.ListView1.SelectedItem.Index + 1 & ":F" & Me.ListView1.SelectedItem.Index + 1).Delete Shift:=xlUp
End If
End Sub
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Cengizhan

VIP
VIP
Kullanıcı
Yaş
38
Versiyon
  1. Excel 2016
  2. Excel 2019
  3. Ofis 365
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

ListBox'ta da olmaz. Bir hücrenin yer aldığı referansı göstermeden nesnenin kendisinden silme bekleyemezsiniz ki.
Verdiğiniz kodlarda zaten bu arama işlevi yapılmakta ve ilgili satır bulunduktan sonra silmek gerçekleşmekte.

Kod:
Sayfa1.Rows(Me.ListView1.ListItems(Me.ListView1.SelectedItem.Index).SubItems(8)).Select

A:I aralığında verilerin olduğu bir tablodan ListView'e aktarım yapıldığını düşünün.
Üstteki kodda yer alan SubITems(8) değeri, ilgili satır numarasını vermektedir. Yani verilerin bittiği sütunun hemen bir sonraki alanının belirtilmesi.

Siz bu işlemi yaptırıp, ilk verdiğim kod ile silme yapabilirsiniz. Ya da kodu aşağıdaki gibi revize ederseniz, sayfadan seçim yaptıramamadan direk silme işlemide yaptırabilirsiniz.

Kod:
Sayfa1.Rows(Me.ListView1.ListItems(Me.ListView1.SelectedItem.Index).SubItems(8)).EntireRow.Delete

Yani işin özeti, bu iş mutlaka verinin doğru olarak bir şekilde bulunmasından geçer. Siz eğer birden fazla veriyi tek bir komutla silmek isterseniz, o zaman verdiğiniz koddaki gibi bir döngü yapmanız lazım.

Şu anda dosya indirmek ve uyarlamak için müsait değilim ama verdiğim yapıdan yola çıkabilirsiniz diye düşünüyorum.
Ben deneyim bakalım ☺️
Sayın @Cengizhan .

Textbox'u kullanarak ARAMA yapıldığında Listview içeriği filtreleniyor.
Bu durumda ilgili satırın, Excel sayfasındaki hangi satırdaki veri olduğu nasıl anlaşılacak.
ID/INDEX no gibi benzersizlik garantisini sağlayacak ve sayfa ile Listview satırı arasındaki ilişkiyi kuracak şey ne olacak o zaman ?

ARAMA işlemi yapmadan tüm liste Listview nesnesinde görünüyorken ve sıralama gibi işlem de yoksa mesele değil.
Ancak daha sonra bu tür durumlar oluştuğunda sorun yaşarsınız.

Listede benzersizlik garantisi varsa SORGU yapalmışsa da birşeyler yapılabilir.
Yani satırlardaki (bütün olarak) veriler TEKİL midir? Mükerrer satır olma ihtimali var mıdır?

Herneyse; sorgu uygulanmadan SİLME işlemi istiyorsanız aşağıdaki kodu kullanabilirsiniz.

C#:
Private Sub CommandButton1_Click()
Set p = Sheets("Personeller")
Me.ListView1.ListItems.Remove (Me.ListView1.SelectedItem.Index)
p.Range("A" & Me.ListView1.SelectedItem.Index + 1 & ":F" & Me.ListView1.SelectedItem.Index + 1).Delete Shift:=xlUp
End Sub
Tamam hocam çok teşekkür ederim ☺️
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Ömer BARAN

Kurucu
Yönetici
Kurucu
Versiyon
  1. Excel 2013
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

Koda bir koşul eklemiştim.
Sayfayı yenileyerek kodu tekrar kontrol edin.
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Cengizhan

VIP
VIP
Kullanıcı
Yaş
38
Versiyon
  1. Excel 2016
  2. Excel 2019
  3. Ofis 365
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

Sayın @Cengizhan .

Textbox'u kullanarak ARAMA yapıldığında Listview içeriği filtreleniyor.
Bu durumda ilgili satırın, Excel sayfasındaki hangi satırdaki veri olduğu nasıl anlaşılacak.
ID/INDEX no gibi benzersizlik garantisini sağlayacak ve sayfa ile Listview satırı arasındaki ilişkiyi kuracak şey ne olacak o zaman ?

ARAMA işlemi yapmadan tüm liste Listview nesnesinde görünüyorken ve sıralama gibi işlem de yoksa mesele değil.
Ancak daha sonra bu tür durumlar oluştuğunda sorun yaşarsınız.

Listede benzersizlik garantisi varsa SORGU yapalmışsa da birşeyler yapılabilir.
Yani satırlardaki (bütün olarak) veriler TEKİL midir? Mükerrer satır olma ihtimali var mıdır?

Herneyse; sorgu uygulanmadan SİLME işlemi istiyorsanız aşağıdaki kodu kullanabilirsiniz.

C#:
Private Sub CommandButton1_Click()
Set p = Sheets("Personeller")
If Me.ListView1.SelectedItem.Index >= 1 Then
    Me.ListView1.ListItems.Remove (Me.ListView1.SelectedItem.Index)
    p.Range("A" & Me.ListView1.SelectedItem.Index + 1 & ":F" & Me.ListView1.SelectedItem.Index + 1).Delete Shift:=xlUp
End If
End Sub
ömer hocam tam istediğim gibi oldu çok sağolun ikinizede çok teşekkür ederim
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Ömer BARAN

Kurucu
Yönetici
Kurucu
Versiyon
  1. Excel 2013
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

Yanlış anlamayın ama belgenize her baktığımda Personeller kelimesi gözüme çarpıp duruyor.
Personel sözcüğünin kendisi ÇOĞUL. o nedenle PERSONEL demek daha doğru olur.

Bu da benim huyum. İdare edersiniz artık. ;)

.
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Cengizhan

VIP
VIP
Kullanıcı
Yaş
38
Versiyon
  1. Excel 2016
  2. Excel 2019
  3. Ofis 365
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

Koda bir koşul eklemiştim.
Sayfayı yenileyerek kodu tekrar kontrol edin.

Yanlış anlamayın ama belgenize her baktığımda Personeller kelimesi gözüme çarpıp duruyor.
Personel sözcüğünin kendisi ÇOĞUL. o nedenle PERSONEL demek daha doğru olur.

Bu da benim huyum. İdare edersiniz artık. ;)

.
Estağfurullah Ömer hocam evet öyle ama sadece örnek amaçlı öle dikkat ederek yazmadım ☺️ hepinizden Allah razı olsun formumuz çok güzel hemen yardım ediliyor bir Excel meraklısı olarak çok geç kalmışım bu forma üye olmaya
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Ömer BARAN

Kurucu
Yönetici
Kurucu
Versiyon
  1. Excel 2013
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

Eyvallah, sağ olunuz.

Memnuniyetinizi;
-- çevrenizdeki Excel kullanıcılarını forumumuzdan haberdar edip, üye olmalarını salık vererek,
-- mümkün olduğunca sık ve uzun süreli çevrimiçi kalarak,
-- tüm sosyal medya kanallarında forumumuzdan bahisle link vererek
gösterirseniz daha da memnun oluruz.

.
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Cengizhan

VIP
VIP
Kullanıcı
Yaş
38
Versiyon
  1. Excel 2016
  2. Excel 2019
  3. Ofis 365
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

Eyvallah, sağ olunuz.

Memnuniyetinizi;
-- çevrenizdeki Excel kullanıcılarını forumumuzdan haberdar edip, üye olmalarını salık vererek,
-- mümkün olduğunca sık ve uzun süreli çevrimiçi kalarak,
-- tüm sosyal medya kanallarında forumumuzdan bahisle link vererek
gösterirseniz daha da memnun oluruz.

.
Evet hocam insallah elimden geleni yapacam
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Cengizhan

VIP
VIP
Kullanıcı
Yaş
38
Versiyon
  1. Excel 2016
  2. Excel 2019
  3. Ofis 365
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

@Ömer BARAN hocam kod minicik bi hata oldu en listviewde en son satırı seçince onu silmiyor sonun bi üstündekini siliyor sadece bu hata var düzeltebilirmiyiz acaba bi yolu varmı
Kod:
C#:
Private Sub CommandButton1_Click()
Set p = Sheets("Personeller")
If Me.ListView1.SelectedItem.Index >= 1 Then
    Me.ListView1.ListItems.Remove (Me.ListView1.SelectedItem.Index)
    p.Range("A" & Me.ListView1.SelectedItem.Index + 1 & ":F" & Me.ListView1.SelectedItem.Index + 1).Delete Shift:=xlUp
End If
End Sub
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Ömer BARAN

Kurucu
Yönetici
Kurucu
Versiyon
  1. Excel 2013
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

Bilgisayarda değilim. Uygun vakit bakarım.
Ayrıca If ve End if satırlarına da gerek olmayabilir.
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Cengizhan

VIP
VIP
Kullanıcı
Yaş
38
Versiyon
  1. Excel 2016
  2. Excel 2019
  3. Ofis 365
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

Bilgisayarda değilim. Uygun vakit bakarım.
Ayrıca If ve End if satırlarına da gerek olmayabilir.
Tm Ömer hocam
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Ömer BARAN

Kurucu
Yönetici
Kurucu
Versiyon
  1. Excel 2013
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

SİL düğmesinin kodunu aşağıdakiyle değiştirerek deneyin.

C#:
Private Sub CommandButton1_Click()
Set p = Sheets("Personeller")
p.Range("A" & Me.ListView1.SelectedItem.Index + 1 & ":F" & Me.ListView1.SelectedItem.Index + 1).Delete Shift:=xlUp
listele
End Sub
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Cengizhan

VIP
VIP
Kullanıcı
Yaş
38
Versiyon
  1. Excel 2016
  2. Excel 2019
  3. Ofis 365
Sürüm
  1. 32 bit
Dil
  1. Türkçe

Reputation:

ömer hocam tek kelime harikasınız teşekkür ederim
 



Forumumuzu reklamsız kullanmak, Hazır Excel Dosyaları indirmek ve web sitemize destek olmak için Hesap Yükseltme yapabilirsiniz. Detayları buradan inceleyebilir, hemen hesabınızı yükseltebilirsiniz.

Çözüm

Benzer Konular

Üst