• DİKKAT

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

for i 1 to 10

zulfuernek

Altın Üye
Katılım
24 Haziran 2017
Mesajlar
761
Excel Vers. ve Dili
türkçe
Private Sub_Enter()
TextBox1.BackColor =&HC0FFFF 'textboxların renk değiştirmesi
TextBox2.BackColor =VbWhite 'textboxların renk değiştirmesi
TextBox3.BackColor =VbWhite 'textboxların renk değiştirmesi
TextBox4.BackColor =VbWhite 'textboxların renk değiştirmesi
TextBox5.BackColor =VbWhite 'textboxların renk değiştirmesi
TextBox6.BackColor =VbWhite 'textboxların renk değiştirmesi
TextBox7.BackColor =VbWhite 'textboxların renk değiştirmesi
TextBox8.BackColor =VbWhite 'textboxların renk değiştirmesi
TextBox9.BackColor =VbWhite 'textboxların renk değiştirmesi
TextBox10.BackColor =VbWhite 'textboxların renk değiştirmesi
End Sub

elimde böyle bir formül var. 10 tane textbox var

hangi textboxa tıklarsam sarı olması ve çıkıncada beyaz olması için. bunların hepsini tek tek textboxlara atmak yerine belirlediğim aralıktaki hangi textboxa tıklarsam sarı yapsın.
 
TextBox1_Enter olayını textbox sayısı kadar çoğaltınız.
For i = 1 To 200 1. ile 200 arasındaki textboxların rengini sıfırlar.

Kod:
Private Sub TextBox1_Enter()
  Call renksil
  TextBox1.BackColor = &HC0FFFF
End Sub

Private Sub TextBox2_Enter()
  Call renksil
  TextBox2.BackColor = &HC0FFFF
End Sub

Sub renksil()
   For i = 1 To 200
     Me.Controls("Textbox" & i).BackColor = vbWhite
   Next i
End Sub
 
Son düzenleme:
asri hocam ellerine sağlık hemen istediğim gibi azda olsa yoracak beni tek tek yazmak 200 tane renk değişmesini istediğim textbox var çünkü. fakat onun haricinde renginin değişmesini istemediğim textboxlarda var ve bunlarda 200 tane ona nasıl bi çözüm bulabiliriz. yani sizin formül seçtiğim textbox dışındakilerin hepsini değişiyor. ama ben hepsini değişsin istemiyorum sadece 200 tanesini değişicek ortalama geri kalanlar sabit kalmalı..

bu yüzden for i dögüsü iş görür diye düşündüm.
 
yani 1 ile 200 arasındakileri değişmesi lazım sadece
 
Private Sub TextBox1_Enter()
Call renksil
TextBox1.BackColor = &HC0FFFF
End Sub

Private Sub TextBox2_Enter()
Call renksil
TextBox2.BackColor = &HC0FFFF
End Sub

Sub renksil()
Dim oCtrl As Control
For Each oCtrl In Me.Controls
If TypeName(oCtrl) = "TextBox1 To TextBox200" Then
oCtrl.BackColor = vbWhite
End If
Next oCtrl
End Sub

kırmızı ile yazdığım yerde aralık belirttim dediğim oldu diğerleri renk değişmedi ancak bu defada sarı renkte kalıyor tıkladıklarım :((
 
merhaba ,

text boxlari olustururken ya da olusturduktan sonra properties penceresinde tag olaylarina deger verin.
mesela 1 olanlar 2 olanlar 3 olanlar diye gruplayabilirsiniz. asagidaki kod taglari 1 olanlari boyar ve ikinci kod siler


Private Sub CommandButton2_Click()
'boya
Dim nesne As Control
For Each nesne In Controls
If nesne.Tag = "1" Then
nesne.BackColor = &HC0FFFF
End If
Next nesne
End Sub


Private Sub CommandButton1_Click()
'boya_sil
Dim nesne As Control
For Each nesne In Controls
If nesne.Tag = "1" Then
nesne.BackColor = vbWhite
End If
Next nesne
End Sub
 
Merhaba, ben de fikrimi söyleyeyim.

Yanlış düşünmüyorsam, istediğiniz işlemin çözümü CLASS MODULE kullanmak.
(Daha evvel ilgilenmiş değilim).

Forumda CLASS+MODULE şeklinde arama yaparsanız işinize yarayabilir.
.
 
Geri
Üst