Soru Kaydetmeden önce 4 yerden mükerrer kaydı kontrol etmek

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
hocam kodları deniyorum ama dediğim gibi sadece Textbox17 dolu olup da diğer textboxlar boş olacak ileride. Kod bu şekliyle Textbox17 dışında Textbox 17 5 ve 6 boşken hata veriyor.
Oysaki aynı excelin B sütununda Textbox17deki sicil dolu ise diğer textboxlar boş ise exceldeki H G ve P sütunları da boş ise mesajla uyarı vermeli tıpkı tüm textboxların tamamının dolu olduğu ve excel sütununda birebir aynı verilerin olduğu gibi çalışmalı.
Bu haliyle eksik Hocam
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,737
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Peki bizler siz belirtmezseniz diğer texboxların boş olacağını nereden bileceğiz.

Ayrıca başlığınızda 4 kritere göre mükerrer kontrolü diye belirtmişsiniz.
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Hoc
Peki bizler siz belirtmezseniz diğer texboxların boş olacağını nereden bileceğiz.

Ayrıca başlığınızda 4 kritere göre mükerrer kontrolü diye belirtmişsiniz.
Sayın @Korhan Ayhan Hocam textbox17 mutlaka dolu olacak olmak zorunda da.
birkaç Örnekle açıklayayım
Örnek 1
TextBox17 sicil B sütunu :123456
TextBox18 onay P sütunu :15.10.2020
TextBox5 gidiş tarihi G sütunu :boş
TextBox6 dönüş tarihi H sütunu :boş

Örnek 2
TextBox17 sicil B sütunu :123456
TextBox18 onay P sütunu :boş
TextBox5 gidiş tarihi G sütunu :16.12.2020
TextBox6 dönüş tarihi H sütunu :16.10.2020

Örnek 3
TextBox17 sicil B sütunu :123456
TextBox18 onay P sütunu :05.05.2020
TextBox5 gidiş tarihi G sütunu :05.05.2020
TextBox6 dönüş tarihi H sütunu :boş
Örnek4
TextBox17 sicil B sütunu :123456
TextBox18 onay P sütunu :12.09.2020
TextBox5 gidiş tarihi G sütunu :
TextBox6 dönüş tarihi H sütunu :

Örnek 5
TextBox17 sicil B sütunu :123456
TextBox18 onay P sütunu :04.04.2020
TextBox5 gidiş tarihi G sütunu :boş
TextBox6 dönüş tarihi H sütunu :12.04.2020

bu şekilde excel sayfasına kaydediliyor zaten yeni kayıt yapılırken eğer boş satır dahil varsa her şey birebir aynı ise uyarı versin aynı diye tamam denirse sıradaki boş satıra kaydetsin yoksa kaydetmesin
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,737
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Şimdi son mesajınıza göre oturup yeniden kod yazmak durumunda kalacağız.

Sürekli söylemekten dilimizde tüy bitti. Lütfen sorularınızı açık ve net bir şekilde sorun diye ama nafile üyelerimiz ısrarla bu duruma devam ediyorlar ve ben anlamakta gerçekten zorlanıyorum.
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Şimdi son mesajınıza göre oturup yeniden kod yazmak durumunda kalacağız.

Sürekli söylemekten dilimizde tüy bitti. Lütfen sorularınızı açık ve net bir şekilde sorun diye ama nafile üyelerimiz ısrarla bu duruma devam ediyorlar ve ben anlamakta gerçekten zorlanıyorum.
Hocam aslında aklimdakini sanki siz biliyormuş gibi olmasından kaynaklandı. Ben merkezli düşündüm. Ondan. Bu konuda affınıza sığınıyorum sayın Hocam

Benim tarih girişim textboxlardaki gibi . Excel satırına da o şekilde kaydediyor.
ilgili Textbox boş ise excelin ilgili hücresi de boş ise textbox ve hücre birebir aynı anlamında oluyor .
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,737
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
Private Sub Kaydet_Click()
    'mesaj kutusu devreye giriyor.
    If MsgBox("Bu kayıt PASİF_İŞLEMLERİ sayfasına kaydedilecek?", vbYesNo) = vbNo Then Exit Sub
    
    Dim a, s As Worksheet, Say As Integer, ara As String, bul As Range, x As Integer
    Set s = Worksheets("VERİ"): Set a = Worksheets("PASİF_İŞLEMLERİ")
    
    Say = Application.WorksheetFunction.CountIfs(a.Range("B:B"), TextBox17, _
      a.Range("P:P"), IIf(TextBox18 = "", "*", TextBox18), _
      a.Range("G:G"), IIf(TextBox5 = "", "*", TextBox5), _
      a.Range("H:H"), IIf(TextBox6 = "", "*", TextBox6))
    
    If Say > 0 Then
    If MsgBox("Bu kayıt daha önce yapılmış!" & vbLf & "Yine de işleme devam etmek istiyor musunuz?", vbCritical + vbYesNo + vbDefaultButton2) = vbNo Then
        MsgBox "Kayıt işlemi iptal edilmiştir.", vbInformation
        Exit Sub
    End If
    End If
    
    
    Say = WorksheetFunction.CountA(a.Range("A2:A65536")) + 1
    
    a.Cells(Say + 1, 1).Value = Say
    a.Cells(Say + 1, 2).Value = TextBox17.Value
    a.Cells(Say + 1, 3).Value = TextBox1.Value
    a.Cells(Say + 1, 4).Value = TextBox2.Value
    a.Cells(Say + 1, 5).Value = TextBox16.Value
    a.Cells(Say + 1, 6).Value = TextBox4.Value
    a.Cells(Say + 1, 7).Value = TextBox5.Value
    a.Cells(Say + 1, 8).Value = TextBox6.Value
    a.Cells(Say + 1, 9).Value = TextBox7.Value
    a.Cells(Say + 1, 10).Value = TextBox8.Value
    a.Cells(Say + 1, 11).Value = TextBox9.Value
    a.Cells(Say + 1, 12).Value = TextBox10.Value
    a.Cells(Say + 1, 13).Value = TextBox11.Value
    a.Cells(Say + 1, 14).Value = TextBox12.Value
    a.Cells(Say + 1, 15).Value = TextBox13.Value
    a.Cells(Say + 1, 16).Value = TextBox18.Value
    ActiveWorkbook.Save
    
    MsgBox "Bu kayıt PASİF_İŞLEMLERİ listesine kaydedildi", vbCritical, "UYARI"
    
    On Error Resume Next
    
    TextBox17.SetFocus
    
    Call UserForm_Initialize
End Sub
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Deneyiniz.

C++:
Private Sub Kaydet_Click()
    'mesaj kutusu devreye giriyor.
    If MsgBox("Bu kayıt PASİF_İŞLEMLERİ sayfasına kaydedilecek?", vbYesNo) = vbNo Then Exit Sub
   
    Dim a, s As Worksheet, Say As Integer, ara As String, bul As Range, x As Integer
    Set s = Worksheets("VERİ"): Set a = Worksheets("PASİF_İŞLEMLERİ")
   
    Say = Application.WorksheetFunction.CountIfs(a.Range("B:B"), TextBox17, _
      a.Range("P:P"), IIf(TextBox18 = "", "*", TextBox18), _
      a.Range("G:G"), IIf(TextBox5 = "", "*", TextBox5), _
      a.Range("H:H"), IIf(TextBox6 = "", "*", TextBox6))
   
    If Say > 0 Then
    If MsgBox("Bu kayıt daha önce yapılmış!" & vbLf & "Yine de işleme devam etmek istiyor musunuz?", vbCritical + vbYesNo + vbDefaultButton2) = vbNo Then
        MsgBox "Kayıt işlemi iptal edilmiştir.", vbInformation
        Exit Sub
    End If
    End If
   
   
    Say = WorksheetFunction.CountA(a.Range("A2:A65536")) + 1
   
    a.Cells(Say + 1, 1).Value = Say
    a.Cells(Say + 1, 2).Value = TextBox17.Value
    a.Cells(Say + 1, 3).Value = TextBox1.Value
    a.Cells(Say + 1, 4).Value = TextBox2.Value
    a.Cells(Say + 1, 5).Value = TextBox16.Value
    a.Cells(Say + 1, 6).Value = TextBox4.Value
    a.Cells(Say + 1, 7).Value = TextBox5.Value
    a.Cells(Say + 1, 8).Value = TextBox6.Value
    a.Cells(Say + 1, 9).Value = TextBox7.Value
    a.Cells(Say + 1, 10).Value = TextBox8.Value
    a.Cells(Say + 1, 11).Value = TextBox9.Value
    a.Cells(Say + 1, 12).Value = TextBox10.Value
    a.Cells(Say + 1, 13).Value = TextBox11.Value
    a.Cells(Say + 1, 14).Value = TextBox12.Value
    a.Cells(Say + 1, 15).Value = TextBox13.Value
    a.Cells(Say + 1, 16).Value = TextBox18.Value
    ActiveWorkbook.Save
   
    MsgBox "Bu kayıt PASİF_İŞLEMLERİ listesine kaydedildi", vbCritical, "UYARI"
   
    On Error Resume Next
   
    TextBox17.SetFocus
   
    Call UserForm_Initialize
End Sub
Sayın @Korhan Ayhan Hocam elinize emeğinize sağlık . Allah razı olsun Hocam kod çalıştı.
 

Cengizhantr06

Altın Üye
Katılım
16 Mayıs 2020
Mesajlar
327
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
18-05-2025
Kendinize uyarlarsınız.

C++:
Option Explicit

Private Sub CommandButton1_Click()
    Dim S1 As Worksheet, Say As Long
   
    Set S1 = Sheets("PASİF_İŞLEMLER")
   
    Say = Application.WorksheetFunction.CountIfs(S1.Range("B:B"), TextBox17, S1.Range("P:P"), CLng(CDate(TextBox18)), S1.Range("G:G"), CLng(CDate(TextBox5)), S1.Range("H:H"), CLng(CDate(TextBox6)))

    If Say > 0 Then
        If MsgBox("Bu kayıt daha önce yapılmış!" & vbLf & "Yine de işleme devam etmek istiyor musunuz?", vbCritical + vbYesNo + vbDefaultButton2) = vbNo Then
            MsgBox "Kayıt işlemi iptal edilmiştir.", vbInformation
            Exit Sub
        End If
    End If
       
    Rem Sizin kodlarınız...
    Rem Sizin kodlarınız...
    Rem Sizin kodlarınız...
End Sub
Bu kod benimde çok işime yaradı Korhan Bey süpersiniz
 
Üst