• DİKKAT

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

TextBoxa formül yazmak

Katılım
8 Haziran 2007
Mesajlar
401
Excel Vers. ve Dili
excel fonksiyonlar
Forumda emeği geçen herkese merhaba. Arkadaşlar textbox10 a düşeyara ile formül yazmak istedim ama beceremedim. Düşeyara(ComboBox3.Value;ALAN1;2;0) . Herhangi bir yere düşeyara formülünü yazdım. Bunu da makro kaydet ile VBa ya çevirdim. Aranan değeri ComboBox3 olarak değiştirip TextBox10 a yazdım. Ama olmadı. Userform konusunu daha yeni öğreniyorum. Sadece bu örnek için değil genel olarak textboxlara formül yazma mantığı nasıl olmalıdır.Bunu merak ediyorum. İlgilenen arkadaşlara şimdiden teşekkürler. :)
 
Selamlar,

Direkt olarak TextBox nesnesine formül yazamazsınız. Sizin ifadenize göre Combobox nesnesinden seçim yaptığınızda hesaplamanın yapılması daha doğru olur. Zaten makbul olanıda budur. Tabiki farklı çözümlerde üretilebilir.

Aşağıdaki kodu kullanabilirsiniz.

Kod:
Private Sub ComboBox3_Change()
    TextBox10 = WorksheetFunction.VLookup(ComboBox3, ALAN1, 2, 0)
End Sub
 
Selamlar,

Direkt olarak TextBox nesnesine formül yazamazsınız. Sizin ifadenize göre Combobox nesnesinden seçim yaptığınızda hesaplamanın yapılması daha doğru olur. Zaten makbul olanıda budur. Tabiki farklı çözümlerde üretilebilir.

Aşağıdaki kodu kullanabilirsiniz.

Kod:
Private Sub ComboBox3_Change()
    TextBox10 = WorksheetFunction.VLookup(ComboBox3, ALAN1, 2, 0)
End Sub

Hocam formülü denediğimde Run Time error 1004 , Work sheet sınıfının Vlook up özelliği alınamadı diye bir uyarı yazıyor. Sebebi ne olabilkir acaba ?
 
Selamlar,

ALAN1 isimli ad tanımlamanızı kontrol edin.
 
Selamlar,

ALAN1 isimli ad tanımlamanızı kontrol edin.

Hocam böyle bir alan var. Aralıkları ve yazımları da doğru. Uyarı yazısı gelip de debuga bastığımda sarıya boyalı yerde ALAN1 in üstüne tıkladığımda ALAN1 = empty yazıyor. Belli ki proplem burda. Ama anlamadım. Hocam bir de şöyle denemek istiyorum. ALAN1 R37:AC39 aralığında formülle çalışan bir alan. Burdaki bütün hücrelerde genellikle topla.çarpımla elde edillmiş formüllü değerler var. Diyorum ki ALAN1 yerine R37:AC39 yazsak. Değişen bir şey olur mu?
 
Selamlar,

ALAN1 yerine Range(ALAN1) yazıp denermisiniz.
 
Selamlar,

ALAN1 yerine Range(ALAN1) yazıp denermisiniz.


Private Sub ComboBox3_Change()

TextBox10 = WorksheetFunction.VLookup(ComboBox3, Range(Alan1), 2, 0)

End Sub

Hocam bu şekilde denedim Method range of object_ Global failed biçiminde uyarı verdi. Bu arada ALAN1 ismini Alan1 olarak değiştirdim. Zira kod içinde ALAN1 adının Alan1 olarak değiştiğini gördüm. Bilmiyorum belki önemsiz bir ayrıntıdır.
 
Selamlar,

Sanıyorum yanlış birşeyler yapıyoruz. Örnek dosyanızı ekleyin ya da aşağıdaki şekilde deneyin.

Kod:
WorksheetFunction.VLookup(ComboBox3, Range("R37:AC39"), 2, 0)
 
Selamlar,

Sanıyorum yanlış birşeyler yapıyoruz. Örnek dosyanızı ekleyin ya da aşağıdaki şekilde deneyin.

Kod:
WorksheetFunction.VLookup(ComboBox3, Range("R37:AC39"), 2, 0)

Korhan hocam sizin eliniz değerse yanlış olmaz. Bu şekliyle oldu. İlginiz ve emeğiniz için çok teşekkürler. Şimdi bunu diğer formüllerle de deneyeceğim. Tekrar teşekkürler. :)
 
Ben de textbox a formül yazıp çıkan değere göre hata mesajı verdirmek istiyorum. Örneğin B10 ile G10 arasındaki değerleri toplatıp ve 10'dan büyük ise "Hatalı", küçük ise "Doğru" yazdırmak istiyorum.

Bir "If" yazsam olur dedim ama yetmedi :P Kod bilgim yetmediğinden düzgün yazamıyorum :)

Yardımcı olursanız sevinirim, saygılarımla...
 
Ben de textbox a formül yazıp çıkan değere göre hata mesajı verdirmek istiyorum. Örneğin B10 ile G10 arasındaki değerleri toplatıp ve 10'dan büyük ise "Hatalı", küçük ise "Doğru" yazdırmak istiyorum.

Bir "If" yazsam olur dedim ama yetmedi :P Kod bilgim yetmediğinden düzgün yazamıyorum :)

Yardımcı olursanız sevinirim, saygılarımla...



Kod:
Sub topla() 'coded by CİHANGİR...
a = WorksheetFunction.Sum(Worksheets("sayfa1").Range("B10:G10"))
Sheets("Sayfa1").Range("A1").Value = a

If a > 10 Then
MsgBox " HATALI ", , ""
Else
MsgBox " DOĞRU ", , ""
End If
End Sub

dosyanız ektedir, inceleyiniz.. saygılar..
 

Ekli dosyalar

Cevap için çok teşekkürler, elinize sağlık.

Peki koddaki durumu izah eden 2 satırınız var

a = WorksheetFunction.Sum(Worksheets("sayfa1").Range("B10:G10"))
Sheets("Sayfa1").Range("A1").Value = a

ben bu ifadeleri nasıl öğrenebilirim. Kafamda algoritmayı kuruyorum ama ifade edemiyorum :redface:
 
Cevap için çok teşekkürler, elinize sağlık.

Peki koddaki durumu izah eden 2 satırınız var

a = WorksheetFunction.Sum(Worksheets("sayfa1").Range("B10:G10"))
Sheets("Sayfa1").Range("A1").Value = a

ben bu ifadeleri nasıl öğrenebilirim. Kafamda algoritmayı kuruyorum ama ifade edemiyorum :redface:


Kod:
a = WorksheetFunction.Sum(Worksheets("sayfa1").Range("B10:G10"))

burada "a" bir değişken.. bu değişkene sayfa1 sheetindeki B10 ile G10 hücreleri arasindaki değerleri toplattık.. bunu "a" değişkenine tanımladık..

Kod:
Sheets("Sayfa1").Range("A1").Value = a

buradada sayfa1 sheet'inin A1 hücresine toplama işleminin çıkan sonucunu tanımladık..

kodun açıklaması bu.. saygılar..
 
Geri
Üst