• DİKKAT

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

userformda kodlar hata veriyor

  • Konbuyu başlatan Konbuyu başlatan muratcx
  • Başlangıç tarihi Başlangıç tarihi
Katılım
17 Ocak 2008
Mesajlar
183
Excel Vers. ve Dili
2003
Merhaba arkadaşlar çalışmakta olduğum userformda DÜZELT butonuna bastığımda kod hata veriyor işin içinden çıkamadım detaylı anlatım dosyada var. Yardımlarınızı rica ediyorum
 

Ekli dosyalar

Selam,

Aşağıdaki gibi dener misiniz?

Kod:
Private Sub CommandButton4_Click() 'DÜZENLE (ListBox üzerinde seçilen kayıtla ilgili değişiklik yapmak için kullanılmaktadır.)
    
    '1 - ListBox nesnesinde veri olup olmadığını kontrol ediyoruz.
    
    If ListBox1 = Empty Then
    If ListBox2 = Empty Then
    If ListBox3 = Empty Then
    MsgBox "Veri kaydı bulunamamıştır.", vbExclamation, "Dikkat !"
    Exit Sub
    End If
    End If
    End If
    
    
    '2 - ListBox nesnesinden seçim yapılıp yapılmadığını kontrol ediyoruz.
    
    If ListBox1.ListIndex < 0 Then
    If ListBox2.ListIndex < 0 Then
    If ListBox3.ListIndex < 0 Then
    MsgBox "Lütfen listeden veri seçimi yapınız.", vbExclamation, "Dikkat !"
    Exit Sub
    End If
    End If
    End If
   
    '3 - Yapılacak değişiklik işlemi için kullanıcıdan onay alıyoruz.
    
    If MsgBox("Seçtiğiniz kayıt üzerinde değişiklik yapılacaktır onaylıyor musunuz ?", vbCritical + vbYesNo, "Dikkat !") = vbYes Then
    
    
    '4 - ListBox nesnesinde kayıtları temizliyoruz.
    
    ListBox1.RowSource = Empty
    ListBox2.RowSource = Empty
    ListBox3.RowSource = Empty
    '5 - Eğer kullanıcı değişiklik işlemi için onay vermişse verileri ilgili hücrelere aktarıyoruz.
    
    
    Cells(ActiveCell.Row, "C") = TextBox1.Text
    Cells(ActiveCell.Row, "B") = ComboBox2.Text
    
    Cells(ActiveCell.Row, "g") = TextBox1.Text
    Cells(ActiveCell.Row, "f") = ComboBox2.Text
    
    Cells(ActiveCell.Row, "k") = TextBox1.Text
    Cells(ActiveCell.Row, "j") = ComboBox2.Text
    
    '6 - VERİ sayfasındaki verileri ListBox nesnesine yüklüyoruz.
    
    With KAYIT.ListBox1
        
        .ColumnCount = 2
        .ColumnWidths = "80;90"
        .ForeColor = vbBlack
        If Sheets("KAYIT").Range("B3") = Empty Then
        .RowSource = Empty
        Else
        .RowSource = "KAYIT!B3:C" & [KAYIT!B65536].End(3).Row
        End If
        
    End With
       
    
   With KAYIT.ListBox2
        
        .ColumnCount = 2
        .ColumnWidths = "80;90"
        .ForeColor = vbBlack
        If Sheets("KAYIT").Range("f3") = Empty Then
        .RowSource = Empty
        Else
        .RowSource = "KAYIT!f3:g" & [KAYIT!f65536].End(3).Row
        End If
    End With
       
    
    With KAYIT.ListBox3
        
        .ColumnCount = 2
        .ColumnWidths = "80;90"
        .ForeColor = vbBlack
        If Sheets("KAYIT").Range("j3") = Empty Then
        .RowSource = Empty
        Else
        .RowSource = "KAYIT!j3:k" & [KAYIT!j65536].End(3).Row
        End If
    End With
    
    MsgBox "Kayıt düzeltme işlemi tamamlanmıştır.", vbInformation, "Kayıt Düzeltme İşlemi"
    
    Else
    
    MsgBox "Kayıt düzeltme işlemi iptal edilmiştir.", vbInformation, "İşlem İptali"
    End If
   
End Sub
 
Ergün hocam ilginize teşekkür ederim.düzeltme işleminde listbox1 de seçim yaptığım halde lisbox2 ve listbox3 deki sayılarada değişikliği uyguluyor sacece seçdiğim listboxda düzenleme yapma istiyorum
 
Ergün hocam ilginize teşekkür ederim.düzeltme işleminde listbox1 de seçim yaptığım halde lisbox2 ve listbox3 deki sayılarada değişikliği uyguluyor sacece seçdiğim listboxda düzenleme yapma istiyorum
selam Listbox Click'leri için kodları aşağıdaki gibi yapınız.
ListBox1_Click için:
Kod:
Private Sub ListBox1_Click()

    Dim satır As Long
    
    Me.ListBox2.Value = Empty
    Me.ListBox3.Value = Empty
       
    satır = ListBox1.ListIndex + 3
    ComboBox1.Text = "1.KONTROL"
    TextBox1.Text = Cells(satır, "C")
    ComboBox2.Text = Cells(satır, "B")
    
    End Sub
ListBox2_Click için:
Kod:
Private Sub ListBox2_Click()
       
    Dim satır As Long
    
    Me.ListBox1.Value = Empty
    Me.ListBox3.Value = Empty
       
    satır = ListBox2.ListIndex + 3
    ComboBox1.Text = "2.KONTROL"
    TextBox1.Text = Cells(satır, "G")
    ComboBox2.Text = Cells(satır, "F")
    
    End Sub
ListBox3_Click için:
Kod:
Private Sub ListBox3_Click() 
    Dim satır As Long
    
    Me.ListBox1.Value = Empty
    Me.ListBox2.Value = Empty
       
    satır = ListBox3.ListIndex + 3
    ComboBox1.Text = "3.KONTROL"
    TextBox1.Text = Cells(satır, "K")
    ComboBox2.Text = Cells(satır, "J")
      
    End Sub

Ne yapmak istediğinizi tam anlayamadım. yazdığınız kodlar ile istedikleriniz arasında çelişkiler var. Ne yapmak istediklerinizi adım adım anlatır mısınız? Bir de örnek dosyanızı izah eder misiniz? Bir de son verdiğim kodlar ile yeni düzenlenmiş örnek dosya ekleyiniz veya yukarıdaki örnek dosyanızı güncelleyiniz. Elimden geldiği kadar yardımcı olmaya çalışayım.

İyi çalışmalar.
 
Son düzenleme:
Merhaba Ergün hocam öncelikle ilgilinize teşekkür ederim vermiş olduğunuz kod tam istediğim gibi benim uzun uzadıya uğraşarak yaptığım kod düzenlemesinde 3 tane listboxda da seçim yapılıyordu ben sadece tıklanan listbox da seçim yapılsın istemiştim sizin yaptığınız işimi bu noktada görüyor
Yapmaya çalıştığım ise Ürün takip programı diyebiliriz kısaca yapılması gerekenleri sıralarsak
Ürün üretim aşamasında 3 ayrı kontrol noktasından geçiyor

1.adımda işi ilk defa kontrol eden kişi 1.KONTROL noktasına sicilini seçerek kaydını yapıyor

2 ve 3.KONTROLÖR de aynı işlemi yapıyor.tabi farklı tarihlerde. Bu aşamaya kadar çalışma tamam gibi

2.adımda Textbox1 nesnesine yazılan kodukontrolör gerekli görürse test için başka bir sayfaya
kaydedecek kaydederkende belli kurallar olacak aynı içerikli ürünlerin grup grup sütunlara kaydedeceğiz 10 haneli rakamdan oluşan kısmın soldan 4.rakamı ile başlayan 3 haneli kısım bizim için önemli yaklaşık 15 değişik numara var bu numaraları 4 ayrı grup olarak başka bir sayfanın ilgili sütunlarına kopyalayacız. Örneğin kodların soldan 4. rakamı 025,026,036,037,038,035 oalanlar 1. grubu oluşturacak.Eğer kod numarası AX1320380456 ise 1.gruba kaydedilecek

3.adımda 4 ayrı gruba dağıtılan kodlar sayfa içinde benzersiz küçükten büyüğe sıralanması gerekiyor (bize kolaylık sağlaması açısından)
4.adımda 4.ayrı grubdaki kod numaraları TEST adlı userformun listboxlarına gelecek
5.adımda Test işlemleri biten kodları listeden seçip çıkarmak için SİL butonu koyacağız
6.adımda Textbox içinde seçdiğimiz tarihe buton atayıp bu buton ile o tarihte yaıplankayıtları listboxlara getirmeyi hedefliyorum (olursa)
7.adımda textbox nesnesindeki kodun 1.kontrol,2 ve 3 .kontrolde kimlerin kontrol ettiğini sorgulayacağız sicil numaraları yan yana olan textboxlara gelecek(nasıl geleceği konusunda fikrim yok henüz)
Şu anki planım bu bir defa yola girdik geride dönemiyorum Siz değerli hocalarımız sayesinde inşallah bitireceğiz
 
Selam Sayın muratcx,
Dosyanızın son hali 10.mesajdadır.
İyi çalışmalar.
 
Son düzenleme:
Merhaba Ergün bey İlginize teşekkür ederim son yapmış olduğunuz düzenleme ile belli bir aşama kaydettik sağolun sonraki adımı anlattığım dosyanın son hali ektedir
 

Ekli dosyalar

Asıl yapmak isdeğim olay TESTE ALINSIN MI? sorusuna evet yanıtını verdiğimizde o ürün kodunu TEST sayfasına yazdırmak. Tabi belli kurallar çerçevesinde .
Örnek verecek olursak AX6320250320 nolu kod TEST sayfasında E sütununa kaydedilecek ( 025 sayısına dikkat! bunun gibi 16 adet 3 haneli sayımız var)
Bu 3 haneli rakam tüm kodlarda aynı basamaklarda Kodumuz AX6332510147 olsaydı H sütununa yazdıracaktık

:dusun:

Sorunuzun yukarıda görülen bölümü için dosyanızda güncelleme yapıldı.
İnceleyiniz.
 

Ekli dosyalar

Merhaba Ergün bey İlginize teşekkür ederim son yapmış olduğunuz düzenleme ile belli bir aşama kaydettik sağolun sonraki adımı anlattığım dosyanın son hali ektedir

Selam,
Dosyanız ektedir. İnceler misiniz?

Kayıt yaparken Teste Alınsın mı? sorusuna evet dediğiniz zaman textbox1 deki ürün kodunun 4,5,6.basamağını kontrol edecek, Test sayfasının B,E,H,K sütunlarından hangisine uyuyor ise, en son boş satıra ekleyecek ve otomatik artan sıralama yapacaktır. ilgili sütunlardaki kodların aynısı eklenmek istendiğinde eklemeyecek ve size uyarı verecektir.
sizin test sayfasındaki yazdığınız sıralama kodlarının hata verdiği ve gerek kalmadığı için sildim.
Tüm kombinasyonları deneyiniz.
İyi çalışmalar.
 
Son düzenleme:
Selam;
Ergün bey ,Kuman bey her ikinizede ayrı ayrı teşekkür ediyorum çok güzel olmuş
Bu aşamadan sonra Test sayfasındaki verilerİ TEST adlı userformun listboxlarına lacağız
alttaki uzun commandbutonu sil butonu yapacağız Test işlemi biten kodları listboxdan sileceğiz

Ayrıca kayıt yapmadan teste kayıt yapabilmek için Kayıt adlı userformda bulunan TESTE YAZ butonunu kullanarakda Test sayfasına kayıt yapacağız ( yanlışlıkla hayır dendiğinde listboxdan seçilip Teste yaz butonu ile aktarırız diye düşünüyorum)

Tesbox2 ye takvim eklemiştim sanırım ergün bey revize ettiniz bu takvimle yapılmak istene şey takvimden herhangibi bir tarih seçip O tarihe ait kayıtları listboxda görüntülemek idi kayıt Userform da listboxdaki bilgilerin güncel tarih ile görüntülenmesi mümkün olabilirmi tarih bugün ise görüntülesin Textboxa geçmişe dönük tarih girdiğimizde o günkü kayıtları göstersin sanırım şartları zorluyorum fonksiyonel bişey olsun istiyorum bu aşamda geçildikten sonra fazla bişey kalmayacak sanırım.
 
Selam;
Ergün bey ,Kuman bey her ikinizede ayrı ayrı teşekkür ediyorum çok güzel olmuş
Bu aşamadan sonra Test sayfasındaki verilerİ TEST adlı userformun listboxlarına lacağız
alttaki uzun commandbutonu sil butonu yapacağız Test işlemi biten kodları listboxdan sileceğiz

Ayrıca kayıt yapmadan teste kayıt yapabilmek için Kayıt adlı userformda bulunan TESTE YAZ butonunu kullanarakda Test sayfasına kayıt yapacağız ( yanlışlıkla hayır dendiğinde listboxdan seçilip Teste yaz butonu ile aktarırız diye düşünüyorum)

Tesbox2 ye takvim eklemiştim sanırım ergün bey revize ettiniz bu takvimle yapılmak istene şey takvimden herhangibi bir tarih seçip O tarihe ait kayıtları listboxda görüntülemek idi kayıt Userform da listboxdaki bilgilerin güncel tarih ile görüntülenmesi mümkün olabilirmi tarih bugün ise görüntülesin Textboxa geçmişe dönük tarih girdiğimizde o günkü kayıtları göstersin sanırım şartları zorluyorum fonksiyonel bişey olsun istiyorum bu aşamda geçildikten sonra fazla bişey kalmayacak sanırım.

Selam,
Aslında adım gidelim demiştim Ancak siz, her adımda 3 adım geliyorsunuz:)

ilk isteğiniz yapılabilir.
Ben takvim revize etmedim. ilk gönderdiğiniz dosyada vardı. 2.ci de yoktu.
Bunu DTpicker nesnesi ile yapabilirsiniz. Hem kodlarınız daha hızlı çalışır. Bunun örneklerini birinci isteğinizden sonra halledelim.
bu aralar işimde yoğunum, en kısa zamanda, müsait olunca dosyanız ile ilgileneceğim. Siz de bu esnada son gönderdiğim dosya üzerinde detaylı çalışmalar yapın kodlarda eksik gedik varsa düzeltelim.

İyi çalışmalar.
 
Selam,
Ergün bey nasılsınız, işlerimin yoğunluğundan size hemen cevap veremedim
Söylediklerinizde haklısınız biraz sabırsızım, yapımda var. Kayıt adlı userformdaki örneklerden yala çıkarak test adlı userfoma verileri çekebildim sil butonu ile siliyorum sorun yok
Yalnız bir sorun var silinen sütunda tablonun çizgileride siliniyor, önüne geçemedim.
Şimdi sıradaki adım userforma SORGULA isminde buton var bu butona tıklanınca Textbox nesnesindeki ürün kodunu Kayıt adlı sayfada 1. kontrol , 2. kontrol , 3. kontrol sütunlarında
arama yapılacak userfomada yanyana duran 3 lü textboxlara tarih ve sicil bilgileri gelecek
Yani sözü edilen ürünü kimler hangi tarihte kontrol etmiş. Dosyanın son hali ektededir .
 

Ekli dosyalar

Geri
Üst