• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

listviewden seçili olanı sayfa1 den silme

Katılım
7 Ağustos 2006
Mesajlar
472
Excel Vers. ve Dili
EXCEL 2003 TÜRKÇE
merhaba
1) listview1 sayfa1 den A2:I arası listeleme yapıyor.örneğin bir satırı listviewden seçip sile basınca o satırı sayfa1den silecek ve alttaki bilgiler sayfa1de 1 er üst satırlara çıkcak.yani o satır boş kalmayacak.
2) lsitview de bir satıra tıklayıp bekleyince 1.bilgiyi değiştirebiliyoruz bunu nasıl engelleriz.
 
Listviewe verileri alırken bir listviewde bir sütun fazladan ekleyin ve o sütuna veriyi aldığınız satırn numarasını girin.Yarın öbürgün o satırı silmek veya değiştirmek isterseniz o sütundaki satır numarasını alıp rahatlıkla silersiniz.En doğrusu ve garantisi budur.Şimdiye kadar edindiğim tecrübelere dayanarak söylüyrum.Veya Sayfada bir sütun oluşturun ve ID no girin o sütuna benzersiz nola.O zaman find komutu kullanarak o satırı bulup silebilirsiniz.:cool:
 
evren abi dosyda bir sıkıntı var çaılşmıyor
 
hocam aşağıdaki kod düzgün çalışıyor.ıd felan da yok sizce kesin doğrumudur

GlobalRow = ö_liste.SelectedItem.Index + 1
X = ö_liste.SelectedItem.Index
Rows(X + 1 & ":" & X + 1).Delete Shift:=xlUp
 
hocam aşağıdaki kod düzgün çalışıyor.ıd felan da yok sizce kesin doğrumudur

GlobalRow = ö_liste.SelectedItem.Index + 1
X = ö_liste.SelectedItem.Index
Rows(X + 1 & ":" & X + 1).Delete Shift:=xlUp
Doru çalışıyorsa problem yok.
Yalnız verileri belli bir kritere göre sorgulayarak alırsanız.O kod devre dışı kalır.O zaman o kod yanlış satırı siler.
Onun için benim size önceden belirttiğim kodları kullanırsanız onlar her zaman doğrudur.
Oysa yukarıdaki kod sadece sorgu oluşturmadan ardışık olarak verileri alırsanız geçerlidir.
Ben daima , her zaman geçerli olan kodları kullanırım.
 
Merhaba Arkadaşlar,
Kusura bakma Evren, siz cevap veriyordunuz ama burnumu sokmadan duramadım.
Kullandığım bir kod var..
Yamahato aşağıdaki kodu denermisiniz

Private Sub CmdDelete_Click()
Dim FindRecord As String
lastrow = ActiveSheet.UsedRange.Rows.count
For r = lastrow To 2 Step -1
FindRecord = ListView1.ListItems(ListView1.SelectedItem.index)
If UCase(Cells(r, 1).Value) = FindRecord Then
Rows(r).Delete
End If
Next r
With Me.ListView1
.ListItems.Remove .SelectedItem.index
End With
End Sub
 
Merhaba Arkadaşlar,
Kusura bakma Evren, siz cevap veriyordunuz ama burnumu sokmadan duramadım.
Kullandığım bir kod var..
Yamahato aşağıdaki kodu denermisiniz

Private Sub CmdDelete_Click()
Dim FindRecord As String
lastrow = ActiveSheet.UsedRange.Rows.count
For r = lastrow To 2 Step -1
FindRecord = ListView1.ListItems(ListView1.SelectedItem.index)
If UCase(Cells(r, 1).Value) = FindRecord Then
Rows(r).Delete
End If
Next r
With Me.ListView1
.ListItems.Remove .SelectedItem.index
End With
End Sub

Verdiğiniz Bu hatalı.
Çünkü ayni kayıttan 2 tane varsa ama sadece 1 tanesinde değişiklik yapacaksan yanlış sonuç üretir.2 kayıt birden değişir.
İşte ben bu yüzden ID no kullanın veya veriyi aldığınız satırı listvievde 1 sütun aatın diyorum.:cool:
 
Merhaba Arkadaşlar,
Kusura bakma Evren, siz cevap veriyordunuz ama burnumu sokmadan duramadım.
Kullandığım bir kod var..
Yamahato aşağıdaki kodu denermisiniz

Private Sub CmdDelete_Click()
Dim FindRecord As String
lastrow = ActiveSheet.UsedRange.Rows.count
For r = lastrow To 2 Step -1
FindRecord = ListView1.ListItems(ListView1.SelectedItem.index)
If UCase(Cells(r, 1).Value) = FindRecord Then
Rows(r).Delete
End If
Next r
With Me.ListView1
.ListItems.Remove .SelectedItem.index
End With
End Sub

Verdiğiniz Bu kod hatalı.
Çünkü ayni kayıttan 2 tane varsa ama sadece 1 tanesinde değişiklik yapacaksan yanlış sonuç üretir.2 kayıt birden değişir.
İşte ben bu yüzden ID no kullanın veya veriyi aldığınız satırı listvievde 1 sütun aatın diyorum.:cool:
 
Haklısın Evren,
icon7.gif

çift kayıt varsa ikisinide siliyor, ID kullanmak daha doğru,
Benim tablolarımda sıra nolar tamamen farklı olduğundan sonuç doğru geliyor.
Böyle kullanmak daha doğru, Kullandığım kodun bir kısmı

Private Sub CmdDelete_Click()
If TextBox1 = "" Then
MsgBox "Veri seçmediniz", vbCritical, "HATA"
Else
y = ListView1.SelectedItem.index
x = ListView1.ListItems(y).ListSubItems(9).Text 'ID
Respond = MsgBox("Silmek istediğinizden emin misiniz?", vbYesNo, "SİLME ONAYI")
If Respond = vbYes Then
Set Sh = ActiveSheet
Sh.Rows(x).Delete
CmdSort_Click ' Listview tekrar sıralama prosedürü
End If
End If
End Sub
İyi akşamlar,
Tansu
 
Geri
Üst