• DİKKAT

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

3 textbox'tan minimum olanı sarı renk yapma

  • Konbuyu başlatan Konbuyu başlatan Costcost
  • Başlangıç tarihi Başlangıç tarihi
Katılım
3 Ekim 2018
Mesajlar
76
Excel Vers. ve Dili
Excel 2003-2007/2010
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.
 
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.
 
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.
 
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
 
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.
 
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
 
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
 
Sayın Ziynettin bey , Korhan bey alternatif cevaplarınız için çok teşekkür ederim.
 
Geri
Üst