• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Soru Userform kaydet sorunu

gultekinkaymaz

Yeni Üye
Katılım
7 Şub 2022
Mesajlar
124
Aldığı beğeni
17
Excel V
Office 2016 TR
Konu Sahibi
Merhaba,
Ekte yer alan dosyamda data sayfasında ID yazan kısım otomatik olarak 1 değerine dönüşüyor ve 2. satırın 1. ve 2. sütunu 0 değeri alıyor. Böyle olunca ilk kaydım 2. satır yerine 3. satırdan başlıyor. satırı silip kaydedince düzeliyor fakat kayıt yaptığım satırı silince aynı hata otomatik olarak yine geliyor. Bunu nasıl düzeltebilirim
 

Ekli dosyalar

Merhabalar,
Private Sub CommandButton1_Click() event'inin içerisindeki
SonSatır = WorksheetFunction.CountA(Worksheets("DATA").Range("B:B")) + 1
kodunu
SonSatır = Worksheets("DATA").Range("B" & Rows.Count).End(xlUp).Row + 1

olarak değiştirip dener misiniz?
 
Tutarsızlık bu iki kodun uyumsuzluğundan kaynaklanıyor.
Biri tüm sütunu sayıyor diğeri C2 den başlıyor saymaya.
Kayıt yapacaksınız varsayalım 10 satırınız var.
Siz 11. cisini kaydedeceksiniz. DATA sayfasında
SonSatır saydınız 1 eklediniz. 11 oldu. ID sekmesini
şarta bağlamışsınız. 2 ise 1 ver. Burada proplem olmaz.
Değilse C sütununda ayları say sonucu ID sekmesine yaz.
İşte burası proplemli. Dosyanızda Aralık seçtim kayıt yaptım
1 yazdı. Bu kodlara göre yapması gerekeni yaptı. :)
ID kaydında amaç her kayıtta B sütunundaki en büyük değeri 1 artırmak ise
large veya max fonksiyonları da kullanılabilir.
SonSatır 2 değilse o zaman neden ComboBox1'i saydırma
ihtiyacı duydunuz o önemli. Özel bir nedeni yoksa SonSatır değişkenini
şu şekilde kullanın. Sizin kod yapınızı bozmadan o zaman şöyle olur:

SonSatır = Sayfa14.Cells(Rows.Count, "B").End(3).Row + 1


Worksheets("DATA").Cells(SonSatır, 2) = Say yerine
Worksheets("DATA").Cells(SonSatır, 2) = SonSatır

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Sayın Gültekin Kaymaz sizin kod yapınıza bağlı kalırsak
yukarda verdiğim kod ID numarası 2 yi atlıyor.
1 , 3,4,5... diye devam ediyor.
Hatalı sonuç üretiyor. Fazlalıkları kaldırarak kodlarınız yeniden düzenledim.
Ben sizin kod yapınıza sadık kalmaya çalıştım.
Ama zaten o kadar fazla kod 1 den başlamak içinmiş.
Onları kaldırdım.
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Konu Sahibi
Sayın Gültekin Kaymaz sizin kod yapınıza bağlı kalırsak
yukarda verdiğim kod ID numarası 2 yi atlıyor.
1 , 3,4,5... diye devam ediyor.
Hatalı sonuç üretiyor. Fazlalıkları kaldırarak kodlarınız yeniden düzenledim.
Ben sizin kod yapınıza sadık kalmaya çalıştım.
Ama zaten o kadar fazla kod 1 den başlamak içinmiş.
Onları kaldırdım.
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
Merhaba,
Bu formülü kullanınca şöyle bir sorun oluşuyor.
Şubat ayına ver girişi yapınca ID numarasının 1 olması gerekiyor fakat 3 olarak devam ettiği için sorun yaşıyorum
 
Sayın gultekinkaymaz ID numaraları her ay için tekrar sayısının bir üstü kadar mı artacak ?
Şubatı saydınız. Şubat ayına ilişkin 5 kayıt var. Şimdi kayıt yapacaksınız 6 mı olacak ?
 
Konu Sahibi
Sayın gultekinkaymaz ID numaraları her ay için tekrar sayısının bir üstü kadar mı artacak ?
Şubatı saydınız. Şubat ayına ilişkin 5 kayıt var. Şimdi kayıt yapacaksınız 6 mı olacak ?
Mesela ocak ayı için 4 tane kayıt yaptım bunların ID numarası 1-2-3-4 olacak daha sonra şubat ayına 2 tane kayıt yaparsam 5 olarak devam etmeyip 1-2 diye numara atayacak diğer aylar için de aynısını geçerli olacak
 
SonSatır değişkenini tanımladığım gibi kullanın.
Say değişkenini aktif yapın. satı-1 yazan yere say yazın.
Düzenlenmiş hali kod tagında.
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 

Ekli dosyalar

  • ıdno.PNG
    ıdno.PNG
    10 KB · Gösterim: 3
Konu Sahibi
SonSatır değişkenini tanımladığım gibi kullanın.
Say değişkenini aktif yapın. satı-1 yazan yere say yazın.
Düzenlenmiş hali kod tagında.
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
kodu aynen kopyalayıp yapıştırdım fakat hata verdi yine
 
B1 e ID yazarsanız çalışır.
SonSatır = Sayfa14.Cells(Rows.Count, "B").End(3).Row + 1
Say = Application.WorksheetFunction.CountIf(Sayfa14.Range("C2:C" & SonSatır), ComboBox1.Value) + 1

Kodların kurgusu belli zaten hocam.
 
Merhabalar,
Kodlarınızın bazılarını değiştirip, eklemeler yaptım
aşağıdaki kodları eskileri ile değiştiriniz.
HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 

Ekli dosyalar

Konu Sahibi
Kodlar ve yardımlar için çok teşekkür ederim yarın iş yerimde dosyaya uygulayıp haber veririm.

Hakkınızı helal edin
 
Konu Sahibi
Merhabalar,
Kodlarınızın bazılarını değiştirip, eklemeler yaptım
aşağıdaki kodları eskileri ile değiştiriniz.
HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.
Kodu dediğiniz gibi değiştirdim fakat ekte yer alan hatayı verdi.
 

Ekli dosyalar

  • HATA.jpg
    HATA.jpg
    328.7 KB · Gösterim: 4
gultekinkaymaz görselde hatanın sebebi açıkça görülüyor, kodun üst kısmında comobox1_change ()
End sub
Eventi daha önceden varmış, onu silerseniz düzelecektir
 
Geri
Üst