controls(i) ye For i ..... Next i döngüsü????

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,571
Excel Vers. ve Dili
Microsoft 365- Türkçe
selam arkadaşlar. benim içinden cıkmaya başaramadığım bir sorunum var. şöyleki:

bir user formumda 6 adet label, 6 adet txtbox, 6 adette com.but. var.

ben textboxların özelliklerini aynı anda değiştirmek için aşağıdaki kodu kullandım:

for i = 5 to 10
With userform1.Controls(i)
.BackColor = &H8000000E
.Enabled = True
End With
Next i

şimdi gelelim soruma

"i" değişkenini controls lere atıyorum sırasıyla controls(5) den controls(10) a kadar gidiyor
burada
controls(5) = textbox1
controls(6) = textbox2
controls(7) = textbox3
controls(8) = textbox4
controls(9) = textbox5 oluyor ama
controls(10) = textbox6 olmuyor, gidiyor commandbutton1 oluyor.

burda benim dikkatimi çeken şu: textbox6 yı formuma sonrada ilave ettim. yani ilk yağtığımda 5 txtbox vardı. sonradan bir tane ilave ettim.

kontrol nesnelerinin yerlerini değiştirebilirmiyim, bu mümkünmü? mümkünse nasıl?
teşekkür ederim....
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi döngüyü kurabilirsiniz.

for a=1 to 6

controls("textbox" & a).....

next
 

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,571
Excel Vers. ve Dili
Microsoft 365- Türkçe
sayın leventm, cevabınız için teşekkür ederim. ancak sanırım ben eksik bilgi yamzışım.
ben textbox larımın name özelliklerini değiştirmiştim.
yani textbox1 textbox2 textbox3 diye gitmiyor
txtad
txttahsil
txttc gibi...
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
İşte bu sebeplerle her zaman textboxların adını ardışık numaralı yapın. Çünkü her nesneyi kendi arasında ancak ismine göre gruplama yapabilirsiniz. Birde aşağıdaki gibi bir mantık kurulabilir.

[vb:1:a7ea9cbb97]For a = 0 To Controls.Count - 1
If TypeName(Controls(a)) = "TextBox" Then MsgBox Controls(a).Name
Next
[/vb:1:a7ea9cbb97]
 

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,571
Excel Vers. ve Dili
Microsoft 365- Türkçe
teşekkürler...
 
Üst