Userform admin girişi

mamita

Altın Üye
Katılım
10 Ocak 2021
Mesajlar
92
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
24-11-2026
Arkadaşlar merhaba

Userformdan kullanıcı girişi yapmak için aşağıdaki kodlamayı yaptım Amacım 3 kere yanlış girilen şifreden sonra çalışma kitabının kapatılması Fakat for döngüsünü ve ya do while döngüsünü kodlamaya yediremedim Yardımlarınızı rica ederim


Private Sub Label1_Click()

If Me.TextBox1 = "" Or Me.TextBox2 = "" Then
MsgBox "Kullanıcı adı ve ya şifre boş bırakılamaz", vbInformation, ""
Exit Sub
End If

Dim a
a = 0





If TextBox1.Value <> "ALİ" And TextBox1.Value <> "ali" And TextBox1.Value <> "VELİ" And TextBox1.Value <> "veli" Then
MsgBox "Hatalı kullanıcı adı", vbInformation, ""
Exit Sub

Else

If ((TextBox1.Value ="ALİ" Or TextBox1.Value = "ali") And TextBox2.Value = "12345") Or ((TextBox1.Value = "VELİ" Or TextBox1.Value = "veli") And TextBox2.Value = "56789") Then
MsgBox "Hoşgeldiniz", vbInformation, ""
Me.Hide
UserForm1.Show
Else
MsgBox "Hatalı Şifre"
a = a + 1
MsgBox a, vbInformation
End If

End If


If a = 3 Then
MsgBox "3 defa hatalı şifre girdiniz, program kapatılıyor", vbInformation, ""
ThisWorkbook.Close savechanges:=False
End If
End Sub
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Dim a
şeklindeki değişken tanımlaması Userform kod sayfasının en başında yapabilirsiniz.
Şu an aynı kodlar içinde tanımlayınca her Click olayında değişken sıfırlandığı için sadece 1'e kadar sayıyor.
Aşağıda örnek var.

233642
Ayrıca forumda kod paylaşıren editörün üst orta kısmındaki "...." olan yere tıklayınca kod seçenekleri ve kod penceresi çıkacak. Kodlarınızı oraya yapıştırınca daha hoş görülür. Seçeneklerden arzu ettiğinizi ya da başkalarının hangisini kullandığına bakarak kopya çekebilirsiniz.

Ve bir ilave daha.
Kodlarınızın okunaklı ve anlaşılır olması için satır girintilerini vermelisiniz. Elinizi buna alıştırın.

C++:
Dim a
Private Sub Label1_Click()
    If Me.TextBox1 = "" Or Me.TextBox2 = "" Then
        MsgBox "Kullanıcı adı ve ya şifre boş bırakılamaz", vbInformation, ""
        Exit Sub
    End If
    'Buradaki Dim a
    've altındaki a=0 satırlarını silin
    If TextBox1.Value <> "ALİ" And TextBox1.Value <> "ali" And TextBox1.Value <> "VELİ" And TextBox1.Value <> "veli" Then
        MsgBox "Hatalı kullanıcı adı", vbInformation, ""
        Exit Sub
    Else
        If ((TextBox1.Value = "ALİ" Or TextBox1.Value = "ali") And TextBox2.Value = "12345") Or ((TextBox1.Value = "VELİ" Or TextBox1.Value = "veli") And TextBox2.Value = "56789") Then
            MsgBox "Hoşgeldiniz", vbInformation, ""
            Me.Hide
            UserForm1.Show
            'Arzu ederseniz burada değişkeni sıfırlatın
            a = 0 'ilave
        Else
            MsgBox "Hatalı Şifre"
            a = a + 1
            MsgBox a, vbInformation
        End If
    End If
    If a = 3 Then
        MsgBox "3 defa hatalı şifre girdiniz, program kapatılıyor", vbInformation, ""
        ThisWorkbook.Close savechanges:=False
    End If
End Sub
 

mamita

Altın Üye
Katılım
10 Ocak 2021
Mesajlar
92
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
24-11-2026
Üstadım selamlar,
Aslında Msgbox koyarak sayacın her tıkladığımda resetlendiğini anladım bu yüzden döngüyle halletmeyi düşünüyordum Fakat "a=0" koyduğunuz alan çok güzel olmuş Şuan gayet iyi çalışıyor, elinize sağlık

Ayrıca Java gibi programlarda indentation kullanmaya dikkat ediyorum fakat yazdığım bu kod çok kompleks olmadığı için gelişigüzel yazmış oldum yine de tavsiyesinizi dikkate alacağım

Saygılar
 
Üst