• DİKKAT

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

Userform TextBox Karakter Aşımı Uyarı Verdirme

  • Konbuyu başlatan Konbuyu başlatan u.L.a.s
  • Başlangıç tarihi Başlangıç tarihi
Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Merhabalar

Excel çalışma sayfamda yarattığım bir userform üzerinde bir textbox var.

Bu Textbox a Excel çalışma sayfasından belirli bir hücredeki değer otomatik yansıtıyorum
userform textbox üstündeki kodumda şu şekilde

Kod:
Private Sub Userform_Initialize()
TextBox28.MaxLength = 56
TextBox28 = Range("AW2").Value

Şimdi AW hücresine ben bir veriyi başka bir yerden copy paste yapıyorum.
ve karakter olarak 56 dan fazla olabiliyor zira burası adres verisini içeren bir hücrem. Buraya yapıştırdığım veriyi bir uyarı vermesine gerek yok

asıl uyarıyı userformu açtığım zaman istiyorum. yani yukarıdaki kodla TextBox ıma yansıyan adres verisi eğer 56 karakterden fazla ise ya bana msgbox uyarısı versin yada ne bileyim textbox çerçevenin etrafı kırmızı renkte gibi birşey olsun istiyorum. ki ben bileyim burada 56 karakterden fazla değer var ve bunu bu textbox içinde azaltayım

bilgi ve yardımlarınızı rica ederim
 
Aşağıdaki kodla sorumu hallettim :)

Kod:
Private Sub TextBox28_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TextBox28.Value) > 56 Then
MsgBox "Adres Verisi Uzun. Düzeltiniz.", vbCritical
Cancel = True
End If
End Sub
 
Deneyiniz.

Kod:
Private Sub Userform_Initialize()
TextBox28.MaxLength = 56
TextBox28 = Range("AW2").Value
If Len(TextBox28) > 56 Then
MsgBox "Adres bilgisi 56 karakterden fazla !" & Chr(10) & "Lütfen düzeltiniz !", VbCritical
End If
End Sub
 
Korhan bey merhaba

sizin verdiğiniz koduda denedim ama çalışmadı yani hiç bir uyarı vermedi.
userform üstünde 1- textbox üstüne tıkladım uyarı verirmi diye ama vermedi

benim yazdığım kodda ise şu durum var. tamam userform açılıyor ben diğer textboxlarıma veri giriyorum. Eğer TextBox28 üstüne mouse ile tıklayıp tekrar diğer textboxlara gelmezsem yine uyarı vermiyor. illaki o TextBox28 üstüne mouse ile bir kere tıklayacağım ki o zaman uyarıyı çıkarıyor karşıma :)
 
Eğer kodu şu şekilde yazarsam bu sefer userform açılmadan önce bu uyarıyı veriyor.
benim yazdığım ilk kodda durursa böylelikle ilk açılışta hem uyarıyı verdirmiş oluyorum. hemde açıldıktan sonra adres verisinde değişiklik yaparsam ve başka textboxa geçersem hala adres verisi uzunsa yine beni uyarmış oluyor.

Kod:
Private Sub TextBox28_Change()
If Len(TextBox28) > 56 Then
MsgBox "Adres bilgisi uzun düzeltiniz", vbCritical
End If
End Sub
 
Önerimdeki kodun çalışması için AW2 hücresine veriyi yapıştırdıktan sonra formu açmanız gerekiyor.
 
Selamlar

aynı konu içerisinden ufak bir soru sormak istiyorum

Bu textBoxa gelen veri 56 karakterden fazla ise uyarı verdiriyorduk.

Peki bu Textboxa yansıyan veride ilk 56 karakteri normal siyah renk ondan sonraki karakter font rengini ise kırmızı renk olarak gösterebilir miyiz. aşağıdaki gibi bişey olsun textbox içerisindeki veri. yani burada yapmak istediğim hangi tarafı silmem gerektiğini bilmek istiyorum yani 56 karakteri aşan karakterleri bilmek istiyorum

bilgi ve yardımlarınızı rica ederim

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
Biraz araştırdım. Bu son sorduğum soruyu TextBox ta üzerinde olmuyormuş

Bunun için InkEdit diye bir activeX control eklemek gerekiyormuş. Görüntü olarka yine TextBox görüntüsü var ama işlevi daha fazla.

Bu InkEdit ActiveX Control tool unu şu şekilde ekliyoruz. Toolbox üstüne sağ buton tıklayıp Additional Control seçerek açılan pencereden Microsoft InkEidt Control seçeneğini işaretliyoruz.

5gGNEq.png


ToolBox a yerleşen bu eklentiyi seçerek Userform üzerinde istediğimiz büyüklükte oluşturuyoruz.
ALyO8X.png


oluşturduğumuz InkEdit e çift tıklayıp aşağıdaki kodları yazıyoruz

Kod:
Private Sub InkEdit1_Change ()
Inkedit1.SelStart = 56
Inkedit1.SelLength = Len(InkEdit1.Text) - InkEdit1SelStart
Inkedit1.SelColor = vbRed
End Sub
 
Geri
Üst