• Foruma hoş geldin 👋 Ziyaretçi

    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 tamamen ücretsizdir.

Soru Userform kaydet sorunu

gultekinkaymaz

Yeni Üye
Kullanıcı Bilgileri
Katılım
7 Şub 2022
Mesajlar
124
Aldığı beğeni
16
Excel Versiyonu
Office 2016 TR
Konuyu Başlatan
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

  • KATKI PAYI ÇOKLU makrolu hali.xlsm
    179.7 KB · Gösterim: 7
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

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
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.
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
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.
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
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 ?
 
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.
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 

Ekli dosyalar

  • ıdno.PNG
    ıdno.PNG
    10 KB · Gösterim: 3
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.
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
kodu aynen kopyalayıp yapıştırdım fakat hata verdi yine
 
Dosyanız ekte.
 

Ekli dosyalar

  • KATKI PAYI ÇOKLU makrolu hali.xlsm
    179.5 KB · Gösterim: 3
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.
C#:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 

Ekli dosyalar

  • KATKI PAYI ÇOKLU makrolu hali (1).xlsm
    173.4 KB · Gösterim: 4
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
 

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
 

Konuyu okuyanlar

Geri
Üst