3 textbox'tan minimum olanı sarı renk yapma

Costcost

Altın Üye
Katılım
3 Ekim 2018
Mesajlar
76
Excel Vers. ve Dili
Excel 2003-2007/2010
Altın Üyelik Bitiş Tarihi
03-12-2025
merhabalar,
userformda 3 textbox var, minumum değerde olanı sarı renk ile göstermeye çalıştım. ama en düşük 2 textbox değerini sarı renkli yaptı.
if then else komutu kullandım olmadı. fikir verebilirseniz sevinirim.
yardımlarınız için şimdiden teşekkürler.
 

Costcost

Altın Üye
Katılım
3 Ekim 2018
Mesajlar
76
Excel Vers. ve Dili
Excel 2003-2007/2010
Altın Üyelik Bitiş Tarihi
03-12-2025
Hoşbulduk, bilgi için teşekkür ederim.

kod aşağıdaki gibi;

Private Sub min ()

If TextBox1.Value < TextBox2.Value < TextBox3.Value Then
TextBox1.BackColor = vbyellow
Else: TextBox1.BackColor = &H80000005
End If

If TextBox2.Value < TextBox3.Value < TextBox1.Value Then
TextBox2.BackColor = vbyellow
Else: TextBox2.BackColor = &H80000005
End If

If TextBox3.Value < TextBox2.Value < TextBox.Value1 Then
TextBox3.BackColor = vbyellow
Else: TextBox3.BackColor = &H80000005
End If

End sub

en düşük değer içeren textbox'ı sarı yapmaya çalışıyorum. excel vba yeni yeni öğeniyorum. şimdilik en düşük 2 değeri sarı renk yapıyor. teke nasıl düşürebilirim diye sordum. umarım anlaşılır olmuşumdur.
 

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Yukarıdaki kod UserForm için uygun değil.(Hatta yanlış)
Zahmet olmazsa; Userformu ve kodu da içinde olan örnek excel dosyanızı eklerseniz daha iyi olur.
Çözüm istiyorsanız lütfen dikkate alınız.
 

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Aşağıdaki kodu deneyin.
Kod:
Private Sub UserForm_initialize()
On Error Resume Next
Application.DisplayAlerts = False
TextBox1 = Sheets("sayfa1").Range("b5")
TextBox2 = Sheets("sayfa1").Range("c5")
TextBox3 = Sheets("sayfa1").Range("d5")
If Sheets("sayfa1").Range("b5").Value < Sheets("sayfa1").Range("c5") And Sheets("sayfa1").Range("b5").Value < Sheets("sayfa1").Range("d5") Then
Me.TextBox1.BackColor = vbYellow
Me.TextBox2.BackColor = vbWhite
Me.TextBox3.BackColor = vbWhite
End If
If Sheets("sayfa1").Range("c5").Value < Sheets("sayfa1").Range("b5") And Sheets("sayfa1").Range("c5").Value < Sheets("sayfa1").Range("d5") Then
Me.TextBox1.BackColor = vbWhite
Me.TextBox2.BackColor = vbYellow
Me.TextBox3.BackColor = vbWhite
End If
If Sheets("sayfa1").Range("d5").Value < Sheets("sayfa1").Range("b5") And Sheets("sayfa1").Range("d5").Value < Sheets("sayfa1").Range("c5") Then
Me.TextBox1.BackColor = vbWhite
Me.TextBox2.BackColor = vbWhite
Me.TextBox3.BackColor = vbYellow
End If
Application.DisplayAlerts = True
End Sub
 

Costcost

Altın Üye
Katılım
3 Ekim 2018
Mesajlar
76
Excel Vers. ve Dili
Excel 2003-2007/2010
Altın Üyelik Bitiş Tarihi
03-12-2025
Sayın Hocam, hızlı cevabınız ve çözümünüz için çok teşekkür ederim. kod işe yarıyor.
Allah razı olsun sizden.
 

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English

Ziynettin

Destek Ekibi
Destek Ekibi
Katılım
18 Nisan 2008
Mesajlar
1,111
Excel Vers. ve Dili
office2010
Merhaba,

Sayın turist cevap sunmuş. Kodu döngü ile kısaltılmış şekli.

Kod:
Private Sub UserForm_Initialize()
TextBox1 = Sheets("sayfa1").Range("b5")
TextBox2 = Sheets("sayfa1").Range("c5")
TextBox3 = Sheets("sayfa1").Range("d5")
Dim a As Double
a = Application.Min([B5:D5])
    For i = 1 To 3
        If Me("textbox" & i).Value = a Then
            Me("textbox" & i).BackColor = vbYellow
        Else
            Me("textbox" & i).BackColor = vbWhite
        End If
    Next i
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,614
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif,

Kod:
Private Sub UserForm_initialize()
    Dim S1 As Worksheet, X As Byte, Minimum As Double, Bul As Integer
    
    Set S1 = Sheets("Sayfa1")
    
    For X = 1 To 3
        Me.Controls("TextBox" & X).BackColor = &H80000005
    Next
    
    TextBox1 = S1.Range("B5")
    TextBox2 = S1.Range("C5")
    TextBox3 = S1.Range("D5")
    
    Minimum = Application.WorksheetFunction.Min(S1.Range("B5:D5"))
    Bul = Application.WorksheetFunction.Match(Minimum, S1.Range("B5:D5"), 0)
    Me.Controls("TextBox" & Bul).BackColor = vbYellow
End Sub
 

Costcost

Altın Üye
Katılım
3 Ekim 2018
Mesajlar
76
Excel Vers. ve Dili
Excel 2003-2007/2010
Altın Üyelik Bitiş Tarihi
03-12-2025
Sayın Ziynettin bey , Korhan bey alternatif cevaplarınız için çok teşekkür ederim.
 
Üst