• DİKKAT

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

Userformdaki Textbox veya Label'de bir formül sonucunu göstermek

Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Selam Arkadaşlar,
Userform'un içindeki Textbox veya Label'de (veya alternatif başkabirşey iinde) bir formül sonucunu göstermek istiyorum. Mümkün müdür?

Örneğin Textbox1 veya Label1'de
Aşağıdaki fonksiyonun sonucu görüntülensin.

Kod:
=İNDİS(OperatörRaporu!$B$2:$E$2;1;KAÇINCI($D$3;OperatörRaporu!$B$7:$E$7;0))

Örneğin Textbox2 veya Label2'de ise
Aşağıdaki fonksiyonun sonucu görüntülensin.

Kod:
=MAK(OperatörRaporu!$B$7:$E$7)

yardımcı olursanız çok sevinirim.
İyi çalışmalar.
 
Merhaba,

Kod:
Private Sub UserForm_Initialize()
Set s1 = Sheets("OperatörRaporu")
    TextBox2.Value = Application.Max(s1.[B7:E7])
End Sub
Diğerinide aynı mantıkla yapabilirsiniz..

.
 
Selam,
verdiğiniz kod işimi gördü. Diğerini aşağıdaki gibi uyarladım. Ancak, Makro kodları bilmediğimden
dolayı beceremedim.
Kod:
TextBox14.Value = Application.Index(s1.[B2:E2], 1, Match(s1.[D3], s1.[B7:E7], 0))
 
.

Kod:
Private Sub UserForm_Initialize()
Set s1 = Sheets("OperatörRaporu")
On Error GoTo hata:
sutun = Application.Match(s1.[D3], s1.[B7:E7], 0)
    TextBox14.Value = Application.Index(s1.[B2:E2], , sutun)
Exit Sub
hata:
TextBox14.Value = ""
End Sub

Bu şekilde kullanabilirsiniz.

Yalnız vba da bu işlemi find komutunu kullanarak yapmanızı tavsiye ederim.

Kod:
Private Sub UserForm_Initialize()
Dim c As Range
Set s1 = Sheets("OperatörRaporu")
    Set c = s1.[B7:E7].Find(s1.[D3], LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            TextBox14.Value = s1.Cells(2, c.Column)
    End If
End Sub
 
çok özür dilerim Forrmüldeki "D3" yerine "TextBox13.Value" daki değer olacaktı.

bu Yüzden D3 yerine TextBox13.Value aşağıdaki gibi yapmaya çalıştım beceremedim.

Kod:
Private Sub UserForm_Initialize()

Set s1 = Sheets("OperatörRaporu")
On Error GoTo hata:
TextBox13.Value = Application.Max(s1.[B7:E7])
TextBox13.Text = Format(TextBox13.Value, "#,## Adet")

sutun = Application.Match(TextBox13.Value, s1.[B7:E7], 0)
    TextBox14.Value = Application.Index(s1.[B2:E2], , sutun)
Exit Sub
hata:
TextBox14.Value = ""
End Sub
 
Kod:
Private Sub UserForm_Initialize()
Set s1 = Sheets("OperatörRaporu")
On Error GoTo hata:
TextBox13.Value = Application.Max(s1.[B7:E7])
sutun = Application.Match(CDbl(TextBox13.Value), s1.[B7:E7], 0)
    TextBox14.Value = Application.Index(s1.[B2:E2], , sutun)
Exit Sub
hata:
TextBox14.Value = ""
End Sub

Bu şekilde deneyin.

Dosya olmadığı için Format(TextBox13.Value, "#,## Adet") bu satır ile dosya arasında orantı kuramadım. Sonuç alamazsanız küçük bir dosya ekleyiniz.
 
Verdiğiniz Kod ile çözüm buldum çok teşekkür ederim.ellerinize sağlık. çok sağolun.
aşağıdaki gibidir.

Kod:
TextBox13.Value = Application.Max(s1.[B7:E7])
sutun = Application.Match(CDbl(TextBox13.Value), s1.[B7:E7], 0)
TextBox14.Value = Application.Index(s1.[B2:E2], , sutun)
TextBox13.Text = Format(TextBox13.Value, "#,## Adet")

önce yine hata verdi.
Kod:
TextBox13.Text = Format(TextBox13.Value, "#,## Adet")
kısmını en sona taşıdım. sorun düzeldi.

Bir de

'On Error GoTo hata:
'Exit Sub
'hata:
'TextBox14.Value = ""
kısımları sildim. yine çalışıyor.
Bu kısmı izah edermisiniz? hata verince Textbox içini boş mu bırakmak içindir? tam olarak ne işe yarıyor?
 
Son eklediğimde silebilirsiniz.

Şu şekilde açıklamaya çalışayım.

İlk formülde,

=İNDİS(OperatörRaporu!$B$2:$E$2;1;KAÇINCI($D$3;OperatörRaporu!$B$7:$E$7;0))

aranan d3 hücresi b7:e7 aralığında olmaz ise kod hata verir, hatalı durumu aşmak için o şekilde kullanmıştım.

.
 
Geri
Üst