Ekran Klavyesi

Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
Merhaba arkadaşlar,

Bankalarda (İşbank,Finansbank .vs. ) güvenlik amacıyla kullanılan ve genellikle "EKRAN KLAVYESİ" olarak adlandırılan şifrelerinizi üzerinde numaralar bulunan kutulara tıklayarak girmenize olanak sağlayan uygulamayı Excel ortamında userform üzerinde yapmak istiyorum.

Bunun için 10 tane label oluşturdum ve bunların caption olayına rastgele ürettiğim rakamları atadım.


label1.Caption = Int(Rnd() * 10)

şeklindeki kod bana 0 ile 9 arasındaki rakamları rastgele veriyor ve label a atıyor. Fakat koddan da anlayabileceğiniz üzere aynı rakam birden fazla kez yaratılabiliyor ve bu yüzden bazı rakamlar da hiç oluşmayabiliyor.

Rastgele sayı üreten RND fonksiyonunu yukarıdaki isteğe göre düzenlemenin bir yolu varmıdır ?

Not : Burada amaç fantezi yapmak sadece, yoksa VBA ortamında şifre güvenliği diye birşeyin olmadığını ve bu kodun güvenlik anlamında hiçbirşeye yaramayacağını biliyorum.
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
[vb:1:a2456e2930]Dim a(9) As Integer
Dim tmp As Integer
Dim i As Integer
Dim j As Integer

Randomize
For i = 0 To 9
a(i) = i
Next i
For i = 0 To 9
j = Int(9 * Rnd)
tmp = a(i)
a(i) = a(j)
a(j) = tmp
Next i

label1.caption = a(0)
label2.caption = a(1)
.
.
.
[/vb:1:a2456e2930]

ile a dizisine 0 dan 9 a kadar olan sayilari benzersiz sekilde atabilirsiniz.
 
Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
Tşekkür ederim sayın Alpen.
İyi Çalışmalar.
 
Üst