• DİKKAT

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

Kaydet Butonunda Yenimi

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

vardar07

Destek Ekibi
Destek Ekibi
Katılım
19 Mart 2008
Mesajlar
2,154
Excel Vers. ve Dili
Office 2007 Enterprise
Türkçe
Arkadaşlar Merhaba:
Sitede Ferhat arkadaşın çalışmasından bir örnek uygulama var.
Benim sormak istediğim Kaydet butonunda
Kod:
If Yeni_mi = True Then
diye bir kod var bu kod aynı kişi kaydını engellemekmi? Değilse nasıl bir kod ile aynı kişi kaydını engelleriz.Çünki bu kod direk kayıt anında işe yaramıyor aynı kişiyi kaydediyor. Herkese kolay gelsin.
 

Ekli dosyalar

Kayıt yeni ise şunları yap anlamına geliyor. Anladığım kadarıyla sadece listbox içindeki bir kayıta çift tıklandığında kayıt yeni olarak kabul edilmiyor.
 
Peki direk kayıtta Listbox ve combobox kullanmadan çift girişi nasıl engelleriz.
Kod:
Dim Yeni_mi As Boolean
Private Sub CommandButton1_Click()
     If TextBox1.Text <> "" Then
            If TextBox2.Text <> "" Then
                    If Yeni_mi = True Then
                        Son_Dolu_Satir = Sheets("Data").Range("A65536").End(xlUp).Row
                        Bos_Satir = Son_Dolu_Satir + 1
                        Sheets("Data").Range("A" & Bos_Satir).Value = _
                        Application.WorksheetFunction.Max(Sheets("Data").Range("A:A")) + 1
                        Sheets("Data").Range("B" & Bos_Satir).Value = TextBox1.Text
                        Sheets("Data").Range("C" & Bos_Satir).Value = TextBox2.Text
                        Else
                        Degistirilecek_Satir = ListBox1.ListIndex + 2
                        Sheets("Data").Range("B" & Degistirilecek_Satir).Value = TextBox1.Text
                        Sheets("Data").Range("C" & Degistirilecek_Satir).Value = TextBox2.Text
                    End If
                Else
                    MsgBox "Soyadı girmeniz gerekiyor"
                End If
            Else
                MsgBox "İsim Girmeniz gerekiyor"
            End If
End Sub
 
Merhaba,

Sanırım uygulamalı excel bölümündeki çalışmaları inceleyip kendinize bir program yapıyorsunuz. Oradaki çalışmalar bir bütünü ifade eder. Kendi çalışmanıza aktarırken bütünü gözeterek aktarmalısınız. Parça parça bölümler alıp çalışmanıza adapte ederseniz. Olmadık hatalarla karşılaşabilirsiniz.

Kaydet kodunuzu aşağıdaki gibi değiştirip deneyin.

Kod:
Private Sub CommandButton1_Click()
    Dim Bul As Range, Adres As String, Satir As Long, X As Byte
    
    With Sheets("Data")
    
        Set Bul = .Range("B:B").Find(TextBox1, , , xlWhole)
        If Not Bul Is Nothing Then
            Adres = Bul.Address
            Do
                If UCase(Replace(Replace(Bul.Offset(0, 1), "ı", "I"), "i", "İ")) = UCase(Replace(Replace(TextBox2, "ı", "I"), "i", "İ")) Then
                    MsgBox "Bu kayıt daha önce veri tabanına kayıt edilmiştir. Bu sebeple işleminiz iptal edilmiştir.", vbCritical
                    Exit Sub
                End If
                
                Set Bul = .Range("B:B").FindNext(Bul)
            Loop While Not Bul Is Nothing And Bul.Address <> Adres
        End If
        
        Satir = .Cells(Rows.Count, 1).End(3).Row + 1
        
        .Cells(Satir, 1) = Satir - 1
        
        For X = 1 To 12
            .Cells(Satir, X + 1) = Me.Controls("TextBox" & X)
            Me.Controls("TextBox" & X) = Empty
        Next
        
        TextBox1.SetFocus
    End With
 
    MsgBox "Kayıt işlemi tamamlanmıştır.", vbInformation
End Sub
 
Merhaba,

Sanırım uygulamalı excel bölümündeki çalışmaları inceleyip kendinize bir program yapıyorsunuz.

Öncelikle cevabınıza teşekkür ederim . Evet Kafama göre birşeyler yapmak istiyorum. Sitede Arkadaşların yaptığı çalışmaları inceleyerek, Ancak konuların çoğu konuyu açan kişilerin yarım bırakması ile biraz ondan biraz şundan yapmaya çalışıyoruz. Buda dediğiniz gibi çorbaya dönüyor. Bizde tıkandığımız yerde bilen arkadaşlardan yardım talebi oluyor. İyi geceler Kolay gelsin.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Geri
Üst