vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest środa, 15 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

formatowanie tekstu w textbox


otwartyotwarty rozpoczął: saimon postów: 6



napisał: Trebor
postów: 1209


umieszczony:
28 lipca 2011
16:21

  
Możesz dorzucić jeszcze do swojego rozwiązania:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr(1, "0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub


Zapobiegniesz możliwości wpisywania nie cyfr.
napisał: saimon
postów: 32


umieszczony:
28 lipca 2011
00:34

  
o kurnasz...
W sumie to wystarczyło mi w zupełności takie coś... (sam doszedłem ale często jak wchodzę na vbamania to doznaję natchnienia ;) )

Private Sub TextBox1_Change()
With TextBox1
If IsNumeric(.Value) = False And .Value <> "" Then MsgBox "Kod banku musi mieć postać 'NNNN NNNN'"
TextBox1.Text = Format(TextBox1.Text, "#### ####")
End With

End Sub

Private Sub textbox1_lostfocus()

With TextBox1
If Len(TextBox1.Text) < 9 And .Value <> "" Then MsgBox "Kod banku musi mieć postać 'NNNN NNNN'"
End With

End Sub



+ ograniczenie we właściwościach MaxLenght na 9
napisał: Trebor
postów: 1209


umieszczony:
27 lipca 2011
19:40

  
Wypróbuj taki kod:
Option Explicit

Dim a As Integer
Dim b As String
Dim c As Byte
Dim d As Boolean
Private Sub TextBox1_Change()
If a < 48 Or a > 57 And a < 96 Or a > 105 Then TextBox1.Text = b: TextBox1.SelStart = c
If TextBox1.SelStart = 4 Then TextBox1.SelStart = 5
TextBox1.SelLength = 1
End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
a = KeyCode
If TextBox1.SelStart = 4 Then TextBox1.SelStart = 5
TextBox1.SelLength = 1
If Shift = 1 Then a = 1
b = TextBox1.Text
c = TextBox1.SelStart
If TextBox1.SelText = " " Then a = 1
If TextBox1.SelText = "" Then d = False Else d = True
End Sub
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 39 Then c = c + 1: TextBox1_Change
If KeyCode = 37 Then
If TextBox1.SelStart < 1 Then Exit Sub
1
If d = True Then TextBox1.SelStart = TextBox1.SelStart - 1
TextBox1.SelLength = 1
If TextBox1.SelText = " " Then d = True: GoTo 1
End If
End Sub

Private Sub Worksheet_Activate()
TextBox1.MaxLength = 9
b = "#### ####"
TextBox1.Text = b
End Sub


Wklej go do modułu arkusza w którym jest textbox1. We właściwościach textboxu1 ustaw maxlenght = 9
napisał: saimon
postów: 32


umieszczony:
27 lipca 2011
08:54

  
textbox znajduje się w arkuszu, to formant activex

Chodzi o to że należy do niego wpisywać kod banku - a kod banku to oczywiście cyfry - konretnie 8 cyfr właśnie - chodzi o to żeby wartości, które należy do niego wpisać były tylko i wyłącznie cyframi - a po wpisaniu żeby miały format "NNNN NNNN" (czyli oddzielone spacją)
napisał: Trebor
postów: 1209


umieszczony:
26 lipca 2011
16:07

  
Gdzie ten tekxtbox się znajduje (arkusz, userform)?
Jeśli w arkuszu to czy to jest formant activeX czy formularza?
Co oznacza, że w textbox ma się pojawiać liczba, napisz więcej o tym pojawianiu?
napisał: saimon
postów: 32


umieszczony:
26 lipca 2011
15:25

  
Witam,

mam pytanko - dość bananlne zapewne.
Potrzebuję aby w TextBox ie pojawiały się dane z tym że muszą to być tylko cyfry - konkretnie musi to być zawsze 8 znaków - ani mniej i ani więcej, w dodatku w formie "#### ####"
jeżeli jeden z warunków nie jest zachowany - MsgBox "Wartości muszą mieć postać NNNN NNNN!"

Pozdr


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z