Çözüldü Kayıt silince yada düzeltince liste yenilensin

Kodlarınıza bakma imkanım olmadı ama, eğer UserForm açıldığında güncel veriler listeleniyorsa, silme ya da düzeltme işleminin bittiği kod satırının altına:
Call UserForm_Initialize() ya da Call UserForm_Activate() yazmanız, verilerin güncellenmesi için yeterli olur.
 
Initialize olayını ilk mesajımda da belirttiğim gibi silme işleminiz tamamlandıktan sonraki kısmın hemen altına ekleyin, yeterli olacak.
UserForm tekrardan yükleneceği için verilerde güncellenmiş olacaktır.

Kodlarınızdaki;
Call temizlestok satırının altına, Call filtrele ekleyebilirsiniz.
Lakin silme işleminizde doğru veriler silinmediğiniz gözlemledim, bilginiz olsun.
 
Kodlarınız Initialize ile ListView'e yüklenmiyor.
Bu yüzden o kısımda bir revizyon yapılmasına gerek yok.

Kodlarınız ListBox1 nesnesinde tıklanma ile ListView'e yüklendiği için, o kısmı tetiklemeniz lazım.
Bunun işlevi de, 4 numaralı mesajda yazdığım gibi Call temizlestok satırının altına, Call filtrele kodunu eklemektir.

Lakin silme işleminiz ListView'de seçili olan satırı silmemektedir, bunu kontrol etmenizi öneririm.

Çok özür dileyerek, vakitsizlikten ötürü tek tek düzeltme yapamadığımı belirtmek isterim.
 
Kodlarınız Initialize ile ListView'e yüklenmiyor.
Bu yüzden o kısımda bir revizyon yapılmasına gerek yok.

Kodlarınız ListBox1 nesnesinde tıklanma ile ListView'e yüklendiği için, o kısmı tetiklemeniz lazım.
Bunun işlevi de, 4 numaralı mesajda yazdığım gibi Call temizlestok satırının altına, Call filtrele kodunu eklemektir.

Lakin silme işleminiz ListView'de seçili olan satırı silmemektedir, bunu kontrol etmenizi öneririm.

Çok özür dileyerek, vakitsizlikten ötürü tek tek düzeltme yapamadığımı belirtmek isterim.
Tamam çok teşekkür ederim ben bi deneyeyim bakim
 
Şöyle bir dener misiniz?

-- rapor_al makrosunda; With stoklar.ListBox1 satırının hemen üstüne,
ListView1.ListItems.Clear diye bir satır ekleyin.
-- CommandButton71_Click makrosunda da Call temizlestok satırının hemen üstüne,
Call rapor_al: CheckBox1 = False: UserForm_Initialize: CheckBox1 = True diye bir satır ekleyin.
 
Ben bir sorun görmüyorum (DEĞİŞTİR/GÜNCELLE işlemini kontrol etmedim),
SİL olayında sorun yok bence.
Bir de "olmadı" yerine neyin olup olmadığını detaylandırırsanız kontrol imkanı olur.
Doğru satır mı silinmedi, doğru satır silindi ama Listview nesnesindeki liste mi günellenmedi, ya da her ikisinde de mi sorun var.
 

Ekli dosyalar

ömer hocam ilk açınca tüm listeyi göstermeden listboxdan birini seçip listviewden silince normal siliyor yeniliyor sonra yine listbokdan başka bölüm seçip listviewden yine seçince mesala 3noluya tıklıyorum ama 2 nolu olan çıkıyor texxtboxlara
 
Bir kere şunu belirteyim;
SİL düğmesinde ilk olarak üst taraftaki Textboxlar filan dolu/boş kontrolünden geçiyor (ilk IF.....Then satırı)
Başka işlem için gerekli midir bilemediğim için o kısma değişiklik önermedim.
Ayrıca SİLME kodunda LISTBOX ile ilgili bir kontrol olmadığından ben şöyle düşündüm;
-- LISTVIEW nesnesinde TÜM LİSTEYİ GÖSTER Checkboxuna tıklayarak tüm listeyi görüntülettim,
-- LISTVIEW satırına ÇİFT tıklayarak satırdaki bilgilerin üstteki nesnelere gelmesini sağladım,
-- SİL düğmesine tıkladım.

Ve bir sorunla karşılaşmadım.
Önce bu şekilde bir dener misiniz?
 
hocam sorun şuan sanırım silme düzeldi o tamam ama ilk açın ve tüm listeye basmayın soldaki listboxdan birine tıklatın ve listviewe gelen veriler diyelim 13 10 12 ve geldi ve 13 e çift tıklayınca textboxlara 13 değilde 1 çıkıyor 1. satırın bilgileri geliyor
 
O hatayı şimdi gördüm.
Kodları bir miktar değiştirdim.
Yeni halini kontrol edin (Listbox'ta seçim olup, tüm liste değil. Listboxta seçilen kategorideki stok listesi görünür olsun.
Hatanın temeli Listview_dblClick olayında, üstteki nesnelere (aslında kritik olan A sütunu değerini gösteren Textbox'a)
Listview in ListIndex değeri yazdırılması (tüm liste görünmeyince bu index değeri sayfadaki satır numarası olmuyor doğal olarak).
Doğrusu ise satır numarasının yazılmasını sağlayacak şey ListIndex değeri değil, seçilen satırın ilk sütunundaki değer.
Öteki nesnelere de aynı mantıkla aktarma olması lazımdı onu da düzelttim.

Yeni halini kontrol edin (ben birkaç satır sildim, kategori bilgilerinin bazılarını sayfadan değiştirin ki liste oluşsun.

.
 

Ekli dosyalar

1614928517984.webp


ListView'de tıklanan verinin satır bilgisi ile textbox vs nesnelere yansıdığı bilgiler tutarlı değil.

1614928725871.webp


Bu da silme işleminde gelen kod bilgisi...
Sıra No 9 olmasına rağmen TextBox9 da olan 1 numarayı siliyor.
Bu da üst resimdeki 2. satırdaki veri demek..
Ama "bu olması gereken" deniyorsa, evet "silme işleminde hata var" yorumum hatalı demektir.
 
Moderatörün son düzenlenenleri:
1614928517984.webp

ListView'de tıklanan verinin satır bilgisi ile textbox vs nesnelere yansıdığı bilgiler tutarlı değil.

1614928725871.webp

Bu da silme işleminde gelen kod bilgisi...
Sıra No 9 olmasına rağmen TextBox9 da olan 1 numarayı siliyor.
Bu da üst resimdeki 2. satırdaki veri demek..
Ama "bu olması gereken" deniyorsa, evet "silme işleminde hata var" yorumum hatalı demektir.
Bahadır hocam evet haklısınız ona hiç dikkat etmedim nasıl düzeltebiliriz onu
 
Moderatörün son düzenlenenleri:
Tekrar merhaba.

Mevcut kodlara şöyle bir göz attım.
Neleri değiştirdiğimden emin olmadığım için tüm kodları vereyim.
Userform kodlarının tamamını silip, yerine aşağıdakileri yapıştırarak denemeler yapın.

Tek farklı durum; Listview'den seçilen bir ürün, Listboxtaki kategorinin ilk elemanı ise,
soldaki Listbox'ta yer alan sıralama değişiyor ve bu da UserForm_Initalize kodu devreye girdiği için kaçınılmaz.
Tabi, silme öncesi seçili olan kategori yine seçili hale geliyor ama sadece Listbox1'deki sıralama değişmiş oluyor.

VBA:
You must log in to view content
(208 satır)
 
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
32
Üst