• DİKKAT

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

Textbox'ta imleç konumu

Katılım
27 Mart 2021
Mesajlar
91
Excel Vers. ve Dili
ofis 2010
Merhaba
Textbox'taki yazıyı düzeltmek istediğimde imleci yazının ortasında olduğu halde bir harf girince imleç sona gidiyor.
Nasıl düzeltilebilir yardım ederseniz sevinirim
Teşekkürler
Not: Textbox içerisindeki devamlı büyük olsun diye change() olayına aşağıdaki kodu kullanıyorum
Textbox1. Value=Evaluate("=upper ("&""""& textbox1 & """" & ") ")
 
Change() olayında textbox’ın değerini yeniden atıyorsun, bu da imlecin (cursor) otomatik olarak sona gitmesine sebep oluyor.

Kod:
Private Sub TextBox1_Change()
    Dim pos As Long
    pos = TextBox1.SelStart

    TextBox1.Value = UCase(TextBox1.Value)

    TextBox1.SelStart = pos
End Sub

Kod:
Private Sub TextBox1_Change()
    Dim pos As Long
    Dim lngSelLength As Long

    pos = TextBox1.SelStart
    lngSelLength = TextBox1.SelLength

    TextBox1.Value = UCase(TextBox1.Value)

    TextBox1.SelStart = pos
    TextBox1.SelLength = lngSelLength
End Sub
 
Change() olayında textbox’ın değerini yeniden atıyorsun, bu da imlecin (cursor) otomatik olarak sona gitmesine sebep oluyor.

Kod:
Private Sub TextBox1_Change()
    Dim pos As Long
    pos = TextBox1.SelStart

    TextBox1.Value = UCase(TextBox1.Value)

    TextBox1.SelStart = pos
End Sub

Kod:
Private Sub TextBox1_Change()
    Dim pos As Long
    Dim lngSelLength As Long

    pos = TextBox1.SelStart
    lngSelLength = TextBox1.SelLength

    TextBox1.Value = UCase(TextBox1.Value)

    TextBox1.SelStart = pos
    TextBox1.SelLength = lngSelLength
End Sub
Çok teşekkür ederim
Sorunum çözüldü.
 
Merhaba
Alternatif olarak aşağıdaki kodu kullanabilirsiniz.
Change olayında kullandığınız kodu silin aşağıdaki kodu kullanın.
Girilen harfi büyük harfe çevirir ve imleç konumu değişmez.

Kod:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
 
Change() olayında textbox’ın değerini yeniden atıyorsun, bu da imlecin (cursor) otomatik olarak sona gitmesine sebep oluyor.

Kod:
Private Sub TextBox1_Change()
    Dim pos As Long
    pos = TextBox1.SelStart

    TextBox1.Value = UCase(TextBox1.Value)

    TextBox1.SelStart = pos
End Sub

Kod:
Private Sub TextBox1_Change()
    Dim pos As Long
    Dim lngSelLength As Long

    pos = TextBox1.SelStart
    lngSelLength = TextBox1.SelLength

    TextBox1.Value = UCase(TextBox1.Value)

    TextBox1.SelStart = pos
    TextBox1.SelLength = lngSelLength
End Sub
Çok teşekkür ederim
Sorunum çözüldü.
Merhaba
Alternatif olarak aşağıdaki kodu kullanabilirsiniz.
Change olayında kullandığınız kodu silin aşağıdaki kodu kullanın.
Girilen harfi büyük harfe çevirir ve imleç konumu değişmez.

Kod:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Muzaffer Ali Bey cevabınız için teşekkür ederim. Diğer cevap'da ı harfini küçük, ı harfini büyük I yapıyordu.Küçük bir düzenlemeyle işimi hallettim yinede sizin cevabınızıda değerlendireceğim
 
ı ve i harflerini dikkate almak için aşağıdaki kod kullanılabilir.
Kod:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 105 Or KeyAscii = 304 Then
        KeyAscii = 304
    ElseIf KeyAscii = 305 Then
        KeyAscii = 73
    Else
        KeyAscii = Asc(UCase(Chr(KeyAscii)))
    End If
End Sub
 
Change() olayında textbox’ın değerini yeniden atıyorsun, bu da imlecin (cursor) otomatik olarak sona gitmesine sebep oluyor.

Kod:
Private Sub TextBox1_Change()
    Dim pos As Long
    pos = TextBox1.SelStart

    TextBox1.Value = UCase(TextBox1.Value)

    TextBox1.SelStart = pos
End Sub

Kod:
Private Sub TextBox1_Change()
    Dim pos As Long
    Dim lngSelLength As Long

    pos = TextBox1.SelStart
    lngSelLength = TextBox1.SelLength

    TextBox1.Value = UCase(TextBox1.Value)

    TextBox1.SelStart = pos
    TextBox1.SelLength = lngSelLength
End Sub
Çok teşekkür ederim
Sorunum çözüldü.
Merhaba
Alternatif olarak aşağıdaki kodu kullanabilirsiniz.
Change olayında kullandığınız kodu silin aşağıdaki kodu kullanın.
Girilen harfi büyük harfe çevirir ve imleç konumu değişmez.

Kod:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Muzaffer Ali Bey cevabınız için teşekkür ederim. Diğer cevap'da ı harfini küçük, ı harfini büyük I yapıyordu.Küçük bir düzenlemeyle işimi hallettim yinede sizin cevabınızıda değerlendireceğim
ı ve i harflerini dikkate almak için aşağıdaki kod kullanılabilir.
Kod:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 105 Or KeyAscii = 304 Then
        KeyAscii = 304
    ElseIf KeyAscii = 305 Then
        KeyAscii = 73
    Else
        KeyAscii = Asc(UCase(Chr(KeyAscii)))
    End If

[/QUOTE]
Teşekkür ederim
Elinize, emeğinize sağlık
 
Geri
Üst