• DİKKAT

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

TextBoxa Girilen Veriye Göre Hücreye Yaz

Katılım
9 Ekim 2009
Mesajlar
1,626
Excel Vers. ve Dili
türkçe
2003
İyi günler,
Sayfamda bulunan TextBoxun içerisinde girilen verilerin arasında virgül varsa örneğin: 45, 46, 47 sayfamda C9 hücresine "Taşınmazlar" C10 hücresine "Parseller"yazacak.Eğer virgül yoksa C9 hücresine "Taşınmaz " C10 hücresine "Parsel" kelimesini yazdırabilir miyiz?
 
Son düzenleme:
Kod:
Private Sub [COLOR="Red"]TextBox1[/COLOR]_Change()
    x = InStr(1, [COLOR="red"]TextBox1[/COLOR], ",")
    [C9] = IIf(x > 0, "Taşınmazlar", "Taşınmaz")
    [C10] = IIf(x > 0, "Parseller", "Parsel")
End Sub

.
 
Son düzenleme:
Bakmıştım zaten ...

.
 
Haluk bey birde şöyle bir şey var.
3 adet Textbox var.Bunların bir tanesinde veri varsa ve virgül yoksa C9 hücresine Taşınmaz, C10 hücresine Parsel yazacak.Virgül varsa C9 hücresine Taşınmazlar C10 hücresine Parseller yazacak.Eğer Textboxların ikisinde veya 3 ünde veri varsa(virgül önemli değil) C9 hücresine Taşınmazlar C10 hücresine Parseller yazıla bilir mi?
 
Kod:
Private Sub [B][COLOR=red]TextBox1[/COLOR][/B]_Change()
    Call checkTextBoxes
End Sub

Private Sub [B][COLOR=red]TextBox2[/COLOR][/B]_Change()
    Call checkTextBoxes
End Sub

Private Sub [B][COLOR=red]TextBox3[/COLOR][/B]_Change()
    Call checkTextBoxes
End Sub

Private Sub checkTextBoxes()
    x = InStr(1, [B][COLOR=red]TextBox1[/COLOR][/B], ",")
    y = InStr(1, [B][COLOR=red]TextBox2[/COLOR][/B], ",")
    Z = InStr(1, [B][COLOR=red]TextBox3[/COLOR][/B], ",")
    k = Len([B][COLOR=red]TextBox1[/COLOR][/B]) * Len([B][COLOR=red]TextBox2[/COLOR][/B]) + Len([B][COLOR=red]TextBox1[/COLOR][/B]) * Len([B][COLOR=red]TextBox3[/COLOR][/B]) + Len([B][COLOR=red]TextBox2[/COLOR][/B]) * Len([B][COLOR=red]TextBox3[/COLOR][/B])
    [C9] = IIf(x + y + Z + k > 0, "Taşınmazlar", "Taşınmaz")
    [C10] = IIf(x + y + Z + k > 0, "Parseller", "Parsel")
End Sub


.
 
Haluk bey çok teşekkür ederim.Ellerinize sağlık
 
Kolay gelsin ...


.
 
Haluk bey Merhabalar;

TextBox adedini 7 ye çıkardım.Fakat istediğimi uğraşmama rağmen bir türlü yapamadım.İstediğim şöyle bir şey

*TextBoxların birden fazlası dolu ise ve virgül yoksa E14 hücresine "TAŞINMAZLARIN" yazacak.
*TextBoxlardan bir tanesi dolu ise ve virgül yoksa E14 hücresine "TAŞINMAZ" yazacak virgül varsa yine E14 hücresine "TAŞINMAZLARIN" yazacak

http://dosya.co/kvr7qg6qpksl/örnek.xls.html
 
Son düzenleme:
Ben daha önceki cevabımı UserForm üzerindeki TextBox'lar için hazırlamıştım, ama siz sayfa üzerinde diye belirtmişiniz ben de görmemişim.

Her neyse .... mantık aynı.

Ancak; TextBox'lar 7 tane olunca ufak bir döngü kurmak iyi olacaktır.

Kullandığınız kodlardaki checkTextBoxes isimli prosedürü silip, onun yerine aşağıda revize edilmiş olanını kullanın ....

Kod:
Private Sub checkTextBoxes()
    a = InStr(1, TextBox1, ",")
    b = InStr(1, TextBox2, ",")
    c = InStr(1, TextBox3, ",")
    d = InStr(1, TextBox4, ",")
    e = InStr(1, TextBox5, ",")
    f = InStr(1, TextBox6, ",")
    g = InStr(1, TextBox7, ",")
    
    For i = 1 To 7
       If (Len([COLOR="Red"][B]Sayfa1[/B][/COLOR].OLEObjects("TextBox" & i).Object.Text) > 0) Then k = k + 1
    Next
    
    [E14] = IIf(a + b + c + d + e + f + g + k > 1, "Taşınmazların", "Taşınmazın")
End Sub


.
 
Son düzenleme:
Çok teşekkür ederim.Ellerinize sağlık.İyi akşamlar
 
Kolay gelsin ...

.
 
Haluk bey merhabalar;
Benim dosyada TextBoxlar 1,2,7,9,10,11,12 olarak gittiği için döngü sağlanamıyor.Ekli kodu buna göre revize eder misiniz ?
Private Sub checkTextBoxes()
a = InStr(1, TextBox1, ",")
b = InStr(1, TextBox2, ",")
c = InStr(1, TextBox7, ",")
d = InStr(1, TextBox9, ",")
e = InStr(1, TextBox10, ",")
f = InStr(1, TextBox11, ",")
g = InStr(1, TextBox12, ",")

For i = 1 To 7

If (Len(Sayfa1.OLEObjects("TextBox" & i).Object.Text) > 0) Then k = k + 1
Next

[anasayfa!C24] = IIf(a + b + c + d + e + f + g + k > 1, "numaralı taşınmazların", " numaralı taşınmazın")
End Sub
 
Bunu deneyin ...

Kod:
Private Sub TextBox1_Change()
    Call checkTextBoxes
End Sub

Private Sub TextBox2_Change()
    Call checkTextBoxes
End Sub

Private Sub TextBox7_Change()
 Call checkTextBoxes
End Sub

Private Sub TextBox9_Change()
    Call checkTextBoxes
End Sub

Private Sub TextBox10_Change()
    Call checkTextBoxes
End Sub

Private Sub TextBox11_Change()
    Call checkTextBoxes
End Sub

Private Sub TextBox12_Change()
    Call checkTextBoxes
End Sub

Private Sub checkTextBoxes()
    Dim arrTextBoxes
    
    arrTextBoxes = Array(1, 2, 7, 9, 10, 11, 12)
    
    a = InStr(1, TextBox1, ",")
    b = InStr(1, TextBox2, ",")
    c = InStr(1, TextBox7, ",")
    d = InStr(1, TextBox9, ",")
    e = InStr(1, TextBox10, ",")
    f = InStr(1, TextBox11, ",")
    g = InStr(1, TextBox12, ",")
    
    For i = LBound(arrTextBoxes) To UBound(arrTextBoxes)
       If (Len(Sayfa1.OLEObjects("TextBox" & arrTextBoxes(i)).Object.Text) > 0) Then k = k + 1
    Next
    
    [anasayfa!C24] = IIf(a + b + c + d + e + f + g + k > 1, "numaralı taşınmazların", " numaralı taşınmazın")
    
    Erase arrTextBoxes
End Sub

.
 
Kolay gelsin...


.
 
Geri
Üst