Cinsiyete Göre Userform Yazı Rengi Değiştirme

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
TextBox ifadesi 7 karakter, Combobox ifadesi ise 8 karakter. O if sorgusunda userformdaki nesnenin adının ilk 7 ve 8 karakterine bakıp, textbox ya da combobox ise renklendirme işlemi yapılacağı belirtiliyor.
Peki Hocam misal txtCinsiyeti TxtAdı txtsoyadı CbBirimi gibi sabit olmayan tanımlamalarda nasıl olacak
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
İlk üç ya da 2 karakterleri Txt ya da Cb olarak sabit ise koda o şekilde ilave edebilirsiniz ya da ilk verdiğim örnekteki gibi her nesne için ayarlama yaparsınız:

If Left(Me.Controls(i).Name, 7) = "TextBox" Or Left(Me.Controls(i).Name, 8) = "ComboBox" Or Left(Me.Controls(i).Name, 3) = "Txt" Or Left(Me.Controls(i).Name, 2) = "Cb" Then

ya da

txtCinsiyeti.BackColor = VbBlue

gibi
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Hocam Listbox1 e tek tıklayınca textboxlara veri geliyor ama cinsiyet kodlarını yapıştrınca exteki hata mesajını veriyor

Kod:
Private Sub ListBox1_Click()
With Sayfa11
If kac = 1 Then GoTo Son
    txtSira.Text = ListBox1.Column(0)
    txtSicili.Text = ListBox1.Column(1)
    txtAdi.Text = ListBox1.Column(2)
    txtSoyadi.Text = ListBox1.Column(3)
    txtRutbesi.Text = ListBox1.Column(4)
    txtBurosu.Text = ListBox1.Column(5)
    txtKimlik.Text = ListBox1.Column(6)
    txtKan_Grubu.Text = ListBox1.Column(7)
    txtTelefonu.Text = ListBox1.Column(8)
    txtDahilisi.Text = ListBox1.Column(9)
    txtTahsili.Text = ListBox1.Column(10)
    txtCinsiyeti.Text = ListBox1.Column(11)
    txtDiğer.Text = ListBox1.Column(12)
    txtKodu.Text = ListBox1.Column(13)
    txtG_Başlama.Text = ListBox1.Column(14)
    txtİ_Kesme.Text = ListBox1.Column(15)
    txtY_Derecesi.Text = ListBox1.Column(16)
    txtY_Adı.Text = ListBox1.Column(17)
    txtY_Telefonu.Text = ListBox1.Column(18)
    txtMaili.Text = ListBox1.Column(19)
    TxtAdresi.Text = ListBox1.Column(20)
    TextBox8.Text = ListBox1.Column(21)
    TextBox9.Text = ListBox1.Column(22)
    TextBox10.Text = ListBox1.Column(23)
    TextBox11.Text = ListBox1.Column(24)
    TextBox12.Text = ListBox1.Column(25)
    TextBox13.Text = ListBox1.Column(26)
  
    
Son:

 
 End With
 

'cinsiyet kodunun başladığı yer
 
  If txtCinsiyeti.Value = "Erkek" Then
        Me.ForeColor = vbBlue
        For i = 1 To Me.Controls.Count
            If Left(Me.Controls(i).Name, 7) = "TextBox" Or Left(Me.Controls(i).Name, 8) = "ComboBox" Or Left(Me.Controls(i).Name, 3) = "Txt" Or Left(Me.Controls(i).Name, 2) = "Cb" Then
                Me.Controls(i).ForeColor = vbBlue
            End If
        Next
        'TextBox22.ForeColor = vbBlue
    ElseIf txtCinsiyeti.Value = "Bayan" Then
        Me.ForeColor = vbRed
        For i = 1 To Me.Controls.Count
            If Left(Me.Controls(i).Name, 7) = "TextBox" Or Left(Me.Controls(i).Name, 8) = "ComboBox" Or Left(Me.Controls(i).Name, 3) = "Txt" Or Left(Me.Controls(i).Name, 2) = "Cb" Then
                Me.Controls(i).ForeColor = vbRed
            End If
        Next
    Else
        Me.ForeColor = vbBlack
        For i = 1 To Me.Controls.Count
            If Left(Me.Controls(i).Name, 7) = "TextBox" Or Left(Me.Controls(i).Name, 8) = "ComboBox" Or Left(Me.Controls(i).Name, 3) = "Txt" Or Left(Me.Controls(i).Name, 2) = "Cb" Then
                Me.Controls(i).ForeColor = vbBlack
            End If
        Next
    End If
 
End Sub

Cinsiyet Hata.jpg
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bilmiyorum, ben “forecolor”la ilgili bir kod verdiğimi hatırlamıyorum.
 
Üst