• DİKKAT

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

Seçili Veriyi Düzeltme

Katılım
27 Aralık 2006
Mesajlar
254
Excel Vers. ve Dili
Excel Visual Basic 6.0
Sayın üstadlar ve arkadaşlar. Yapmaya çalıştığım macro dosyasında " SEÇİLİ VERİYİ DÜZELT " kısmında sanırım bir hata veriyor. Çünkü List Box da çift tıklayarak seçmiş olduğum veriyi üst deki List Box a atıyor orayıda çift tıkladığımda verileri Form üzerine aktarıyor. Orada düzeltme işlemi yaptıktan sonra "MÜŞTERİ KAYDINI DÜZELTMEK" ChekBox ı işaretleyince " SEÇİLİ VERİYİ DÜZELT " aktif oluyor sonra bu butonu tıkladıktan sonra veriyi düzeltiyor ancak bazen düzeltilen veriyi verinin bulunduğu satıra değil KAYIT sayfasında en üste atıyor oradaki farklı bir veriyi siliyor. Bu konuda yardımlarınızı sekliyorum. Şimdiden ilgi ve alakanıza teşekkür ederim. Dosyayı ekde gönderiyorum.
 

Ekli dosyalar

Sanırım cevap alamayacağım bu konu hakkında
 
Dosyanızda gördüğüm kadarıyla mantığı doğru kurmuşsunuz. Hata nedenini ancak hata verdiği anda tespit etmek gerekir. Bunun içinde değiştirme işlemi yapan prosedürün içinde sonsat değerini kontrol eden bir satır ekleyin ve bu değeri örneğin, bir hücreye yazdırarak doğruluğunu kontrol edin. Bunun dışında tasarımınız ile ilgili bir kaç önerim olacak.

- Her forma koyduğunuz aktif saatleri iptal edin. Bunlar gereksiz yere programınızı ağırlaştırıyor. Eğer tarih ve saat koyacaksanız bir statusbar ekleyebilirsiniz.
- Sayfa seçmek için kullandığınız .select komutlarını devre dışı bırakacak bir kodlama mantığı kullanın. Örneğin;

Kod:
Sheets("KAYIT").Select
Cells(sonsat, 1) = TextBox13 * 1
yerine aşağıdaki gibi düzenlerseniz sayfaları seçmenize gerek kalmaz.

Kod:
Sheets("KAYIT").Cells(sonsat, 1) = TextBox13 * 1
 
Sayın üstadlar ve arkadaşlar. Yapmaya çalıştığım macro dosyasında " SEÇİLİ VERİYİ DÜZELT " kısmında sanırım bir hata veriyor. Çünkü List Box da çift tıklayarak seçmiş olduğum veriyi üst deki List Box a atıyor orayıda çift tıkladığımda verileri Form üzerine aktarıyor. Orada düzeltme işlemi yaptıktan sonra "MÜŞTERİ KAYDINI DÜZELTMEK" ChekBox ı işaretleyince " SEÇİLİ VERİYİ DÜZELT " aktif oluyor sonra bu butonu tıkladıktan sonra veriyi düzeltiyor ancak bazen düzeltilen veriyi verinin bulunduğu satıra değil KAYIT sayfasında en üste atıyor oradaki farklı bir veriyi siliyor. Bu konuda yardımlarınızı sekliyorum. Şimdiden ilgi ve alakanıza teşekkür ederim. Dosyayı ekde gönderiyorum.

Merhaba

Levent Bey Benden önce bir şeyler yazmış.

Bu mesajı bilgi mahiyetinde yazıyorum.

Sorularınızı sorarken eklemiş olduğunuz dosyalarla ilgili açılıştaki şifre ve kodları iptal ediniz. Zira dosyanıza yardımcı olacak kişiler kendi bilgisayarlarında önce excel güvenlik düzeylerini değiştirip dosyanızı açıyor açılışdaki çalışan kodları siliyor sonra dosyanızı kayıt yapıyor ve kapatıyor daha sonra excel güvenlik düzeyini yeniden değiştiriyor ve dosyanızı yeniden açıyor.

Kayıt userformda seçimi düzelt düğmesindeki kodu bununla değiştirip denermisiniz.

Kod:
Private Sub CommandButton1_Click()
    On Error Resume Next
    Dim say As Integer
    Dim sirasi As String
   
If TextBox1.Text = "" Then
    MsgBox " VERİ OLMADAN DEĞİŞTİR BUTONUNU KULLANAMAZSINIZ."
    MsgBox " VERİ DEĞİŞTİRMEK İÇİN VERİNİN ÜZERİNE ÇİFT TIKLAYIN"
TextBox1.SetFocus
Exit Sub
End If


If CheckBox2.Value = True Then

sor = MsgBox("Değiştirmek istediğinizden eminmisiniz?", vbYesNo)
If sor = vbNo Then Exit Sub

sonsat = ListBox2.ListIndex + 4

ListBox2.RowSource = ""
Sheets("KAYIT").Cells(sonsat, 1) = TextBox13 * 1
Sheets("KAYIT").Cells(sonsat, 2) = TextBox1.Text
Sheets("KAYIT").Cells(sonsat, 3) = TextBox2.Text * 1
Sheets("KAYIT").Cells(sonsat, 4) = TextBox3.Text
Sheets("KAYIT").Cells(sonsat, 5) = TextBox4.Text
Sheets("KAYIT").Cells(sonsat, 6) = TextBox5
Sheets("KAYIT").Cells(sonsat, 7) = TextBox6
Sheets("KAYIT").Cells(sonsat, 8) = TextBox7
Sheets("KAYIT").Cells(sonsat, 9) = TextBox8.Text * 1
Sheets("KAYIT").Cells(sonsat, 10) = ComboBox1.Text
Sheets("KAYIT").Cells(sonsat, 11) = TextBox10 * 1
Sheets("KAYIT").Cells(sonsat, 12) = TextBox11 * 1
Sheets("KAYIT").Cells(sonsat, 13) = TextBox12
Sheets("KAYIT").Cells(sonsat, 14) = ComboBox2.Text
Sheets("KAYIT").Cells(sonsat, 15) = TextBox14
Sheets("KAYIT").Cells(sonsat, 16) = ComboBox4.Text
Sheets("KAYIT").Cells(sonsat, 17) = ComboBox5.Text
Sheets("KAYIT").Cells(sonsat, 18) = TextBox15
ListBox2.RowSource = "KAYIT!A4:R" & Sheets("KAYIT").[a65536].End(3).Row
sonsat = ListBox1.ListIndex + 2
ListBox1.RowSource = ""
Sheets("ANLIKKAYIT").Cells(sonsat, 1) = TextBox13 * 1
Sheets("ANLIKKAYIT").Cells(sonsat, 2) = TextBox1.Text
Sheets("ANLIKKAYIT").Cells(sonsat, 3) = TextBox2.Text * 1
Sheets("ANLIKKAYIT").Cells(sonsat, 4) = TextBox3.Text
Sheets("ANLIKKAYIT").Cells(sonsat, 5) = TextBox4.Text
Sheets("ANLIKKAYIT").Cells(sonsat, 6) = TextBox5
Sheets("ANLIKKAYIT").Cells(sonsat, 7) = TextBox6
Sheets("ANLIKKAYIT").Cells(sonsat, 8) = TextBox7
Sheets("ANLIKKAYIT").Cells(sonsat, 9) = TextBox8.Text * 1
Sheets("ANLIKKAYIT").Cells(sonsat, 10) = ComboBox1.Text
Sheets("ANLIKKAYIT").Cells(sonsat, 11) = TextBox10 * 1
Sheets("ANLIKKAYIT").Cells(sonsat, 12) = TextBox11 * 1
Sheets("ANLIKKAYIT").Cells(sonsat, 13) = TextBox12
Sheets("ANLIKKAYIT").Cells(sonsat, 14) = ComboBox2.Text
Sheets("ANLIKKAYIT").Cells(sonsat, 15) = TextBox14
Sheets("ANLIKKAYIT").Cells(sonsat, 16) = ComboBox4.Text
Sheets("ANLIKKAYIT").Cells(sonsat, 17) = ComboBox5.Text
Sheets("ANLIKKAYIT").Cells(sonsat, 18) = TextBox15
ListBox1.RowSource = "ANLIKKAYIT!A2:R" & Sheets("ANLIKKAYIT").[a65536].End(3).Row
MsgBox "DEĞİŞİKLİK YAPILMIŞTIR"
TextBox13.Text = ""
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
ComboBox1.Text = ""
TextBox10.Text = ""
TextBox11.Text = ""
TextBox12.Text = ""
ComboBox2.Text = ""
TextBox14.Text = ""
ComboBox4.Text = ""
ComboBox5.Text = ""
TextBox15.Text = ""
TextBox1.SetFocus

Else: CheckBox2.Value = False
sor = MsgBox("Değiştirmek istediğinizden eminmisiniz?", vbYesNo)
If sor = vbNo Then Exit Sub

sonsat = ListBox1.ListIndex + 2
ListBox1.RowSource = ""
Sheets("ANLIKKAYIT").Cells(sonsat, 1) = TextBox13 * 1
Sheets("ANLIKKAYIT").Cells(sonsat, 2) = TextBox1.Text
Sheets("ANLIKKAYIT").Cells(sonsat, 3) = TextBox2.Text * 1
Sheets("ANLIKKAYIT").Cells(sonsat, 4) = TextBox3.Text
Sheets("ANLIKKAYIT").Cells(sonsat, 5) = TextBox4.Text
Sheets("ANLIKKAYIT").Cells(sonsat, 6) = TextBox5
Sheets("ANLIKKAYIT").Cells(sonsat, 7) = TextBox6
Sheets("ANLIKKAYIT").Cells(sonsat, 8) = TextBox7
Sheets("ANLIKKAYIT").Cells(sonsat, 9) = TextBox8.Text * 1
Sheets("ANLIKKAYIT").Cells(sonsat, 10) = ComboBox1.Text
Sheets("ANLIKKAYIT").Cells(sonsat, 11) = TextBox10 * 1
Sheets("ANLIKKAYIT").Cells(sonsat, 12) = TextBox11 * 1
Sheets("ANLIKKAYIT").Cells(sonsat, 13) = TextBox12
Sheets("ANLIKKAYIT").Cells(sonsat, 14) = ComboBox2.Text
Sheets("ANLIKKAYIT").Cells(sonsat, 15) = TextBox14
Sheets("ANLIKKAYIT").Cells(sonsat, 16) = ComboBox4.Text
Sheets("ANLIKKAYIT").Cells(sonsat, 17) = ComboBox5.Text
Sheets("ANLIKKAYIT").Cells(sonsat, 18) = TextBox15
ListBox1.RowSource = "ANLIKKAYIT!A2:R" & Sheets("ANLIKKAYIT").[a65536].End(3).Row
MsgBox "DEĞİŞİKLİK YAPILMIŞTIR"
TextBox13.Text = ""
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
ComboBox1.Text = ""
TextBox10.Text = ""
TextBox11.Text = ""
TextBox12.Text = ""
ComboBox2.Text = ""
TextBox14.Text = ""
ComboBox4.Text = ""
ComboBox5.Text = ""
TextBox15.Text = ""
TextBox1.SetFocus
End If
Module2.Makro2
End Sub
 
Halit bey ilginize çok teşekkür ederim. Ancak hala aynı hatayı veriyor. Seçimi düzelt yapınca verileri ilk satıra yazıyor. İlk satırdaki veriyi siliyor.
 
Bir türlü bulamadım. Sanırım düzeltme işlemini tamamen kaldırıcam :) sıkıldım bu işten.
 
Sayın üstadlar acil yardım bu konu hakkında. Yoksa bırakacam bu Visual basic i
 
Selam,
modüllerdeki
"On Error Resume Next" leri geçici olarak kaldırıp denermisiniz
sanırım bir hata oluşuyor fakat siz On Error Resume Next yüzünden bu hatayı yakalıyamıyorsunuz ve son satıra değil tablonun başına yazılıyor
 
Fikriniz için teşekkür ederim. Deneyeceğim. Olabilir.
 
Dosyandaki kodlar bana karışık geldiği için sorunuza cevap yazmadım.

1-Yukarıdaki mesajımda bahsettiğim
Sorularınızı sorarken eklemiş olduğunuz dosyalarla ilgili açılıştaki şifre ve kodları iptal ediniz. Zira dosyanıza yardımcı olacak kişiler kendi bilgisayarlarında önce excel güvenlik düzeylerini değiştirip dosyanızı açıyor açılışdaki çalışan kodları siliyor sonra dosyanızı kayıt yapıyor ve kapatıyor daha sonra excel güvenlik düzeyini yeniden değiştiriyor ve dosyanızı yeniden açıyor.
bu durumu düzeltmemişsiniz.
2-ANLIKKAYIT sayfasını ne amaçla kullanıyorsunuz bilmiyorum userform açılınca zaten buradaki verilerin hepsini silen kod mevcut ve bir satırdan fazla veride yazılamıyor.
3-Listbox1 in işlevini Listbox2 zaten yapıyor bu nesnede gereksiz gözüküyor.
4-Tarih ve saat olarak StatusBar nesnesi kullanmanızı tavsiye ederim.


Dosyayı irdeleyin
 

Ekli dosyalar

olmuyor.

Bir çok deneme yapmama rağmen hatayı bir türlü bulamadım. Sanırım aynı kişinin bir kaç kaydı olduğundan bu hatayı veriyor. Örneğin 32. satırdaki bir kaydı düzeltmek istediğimde düzeltmeyi yapıp " SEÇİLİ VERİYİ DÜZELT " butonunu tuşladığımda düzeltmeyi yapıyor ancak düzeltilen veri satırını 2. satıra yada 3. satıra atıyor. 32. satır aynı şekilde kalıyor. Buna bir çözüm yolu bulamadım. Bu konu hakkında yardım edecek üstadlara ve arkadaşlara şimdiden teşekkür ederim. Saygılarımla.
 
Geri
Üst