TextBox içine Sadece X yazılmasına izin vermek

Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
Selam Arkadaşlar
31 adet TextBox içine kullanıcının sadece X karakteri yazmasını başka hiç bir şey yazmamasını nasıl sağlayabilirim.
TextBox'sın KeyPress olayına (For 32 To 62) topluca yazılabilirmi
Saygılar
 

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
çalışmanıza bir class modül ekleyip allttaki kodları kopyalayın,(userform ismini değiştirmeyi unutmayın)

Kod:
Public WithEvents fdl As MSForms.TextBox
Private Sub fdl_Change()
UserForm1.ActiveControl = "x"
End Sub
userformada altakinleri kopyalayın,

Kod:
Dim fdl() As New Class1

Private Sub UserForm_Initialize()
    ReDim Preserve fdl(31)
    For x = 32 To 62
    Set fdl(x).fdl = Controls("textbox" & x)
    Next
End Sub
kodlar alıntı ve uyarlamadır.emek sahibine teşekkürler.
 
Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
sağol fedeal ama UserForm_Initialize() olayında başka bir kod
Dim X As Long
For X = 1 To 12
çalışıyor bu nedenle bloke ediyor. Verdiğin kod bendede vardı ama çalıştıramadım UserForm_Initialize() kodunda bir kaç kodu aynı anda çalıştırmayı bir türlü beceremedim.
Yukarıda fedeal arkadaşın yazdığı kodları
Private Sub UserForm_Initialize()
Dim X As Long
For X = 1 To 12
ComboBox1.AddItem Format(DateSerial(Year(Now), X, 1), "mmmm")
Next
ComboBox1.Value = Format(DateSerial(Year(Now), Month(Now), 1), "mmmm")
For X = 1900 To 2100
ComboBox2.AddItem X
Next
ComboBox2.Value = Year(Now)

Set SS = Sheets("SIRA")
Son = SS.Cells(65536, 3).End(xlUp).Row
For Y = 3 To Son
If SS.Cells(Y, 3) = "BOŞ" Or SS.Cells(Y, 3) = "" Then: GoTo Devam
ComboBox3.AddItem SS.Cells(Y, 3)
Devam: Next
End Sub
neresine yazmalıyım bilen varmı acaba (mutlaka vardır)
Saygılar
 

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
x yerine d yada f yapın yada activate olayına yazın deneyin bi sonuç bulursunuz.

ReDim Preserve fdl(31)
For d = 32 To 62
Set fdl(d).fdl = Controls("textbox" & d)
Next
yada

Private Sub UserForm_Activate()
ReDim Preserve fdl(31)
For x = 32 To 62
Set fdl(x).fdl = Controls("textbox" & x)
Next
End Sub
Dim fdl() As New Class1
bu kodu userform kod sayfasının en üstüne kopyalayın

örnek olması için bir dosya hazırladım inceleyin 6 tane textbox var 5'i istediginiz özellige sahip
 

Ekli dosyalar

Son düzenleme:
Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
Sayın Fedeal teşekkür ederim ilgine activate olmuyor hatta tüm UserForm_Initialize() kodlarını sildim sadece bu kodları yazdım Class kodunu sayfanın en başınada ortasınada altınada yazdım yok Public WithEvents class modülünü yaptım hatta hatta userform üzerinde bağımsız çalışan tüm kodları silip yine sadece bu kodları yazdım bu arada bir koduda karıştırdım kod döngüye girdi kaydetmemiştim yaptıklarımda uçtu. Sırf benden X istediler diye. Tekrar Teşekkür ederim vaktini aldım 14 saattir uğraşıyorum pes ben vazgeçtim.
Saygılar iyi geceler.
 
Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
Selam Sayın fedeal akşam örnek dosya varmıydı ben hiç farkında değilim şimdi farkettim bende akşam kafa durmuştu artık kusura bakmayın.
Yalnız Sayın fedeal verdiğiniz kodda
If UserForm1.ActiveControl = "" Then Exit Sub
bölümü yoktu farkındaysanız. ama ekli dosyaya yazmışsınız tabi bende ekli dosyayı görmeden kodlara boğuldum Bu yüzden çalıştıramamıştım kodu. Şimdi eksik olan tamamlanınca sorun kalktı. Teşekkür ederim. Bende başka formül uydurmuştum sayfa kodlara boğuldu ama ne yapayım uğraştık işte neyse senin yaptığını uygulayacağım tabi.
Ben yinede örneği ekleyeyim yeni başlayan bir arkadaşa lazım olur belki.
her şey için tekrar teşekkür ederim.
Saygılar.
 

Ekli dosyalar

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
örnek yoktu siz uyarlayamayınca yaptım yaparkende o satırı ekledim.(deneyince fark ediliyor hata) işinize yaradıgına sevindim ,saygılar.
 
Üst