Εμφάνιση ενός μόνο μηνύματος
  #3  
Παλιά 17-04-14, 12:13
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλημέρα!

Ο παρακάτω κώδικας:

Δεν επιτρέπει την επικόλληση κειμένου από το πρόχειρο.

Δεν επιτρέπει την καταχώρηση μή έγκυρου αριθμού στο πεδίο TextBox1.

Λαμβάνει υπόψη του της ρυθμίσεις υποδιαστολής για δεκαδικά ψηφία του υπολογιστή.

Επιτρέπει την καταχώρηση αρνητικού αριθμού.


Κώδικας:
Option Explicit
Private decSeparator As String

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyV Or KeyCode = vbKeyInsert Then
        KeyCode = 0
    End If
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Chr(KeyAscii) = "-" Then
        If InStr(1, TextBox1.Text, "-") Then
            KeyAscii = 0
        ElseIf Len(TextBox1.Text) Then
            If TextBox1.SelStart > 0 Then
                KeyAscii = 0
            End If
        End If
    Else
        If Not IsNumeric(Chr(KeyAscii)) Then
            If Chr(KeyAscii) = decSeparator Then
                If Len(TextBox1.Text) = 0 Or InStr(1, TextBox1.Text, decSeparator) Then
                    KeyAscii = 0
                End If
            Else
                KeyAscii = 0
            End If
        End If
    End If
End Sub

Private Sub UserForm_Initialize()
    decSeparator = Application.International(xlDecimalSeparator)
End Sub

Για να επιστρέψουμε την αριθμητική τιμή του πεδίου TextBox1 στο κελί A1 χρησιμοποιούμε:

Κώδικας:
 
    If IsNumeric(TextBox1.Text) Then
        Sheet1.Range("A1").Value = CDbl(TextBox1.Text)
    Else
        Sheet1.Range("A1").ClearContents
    End If
όπου Sheet1 = το κωδικό όνομα του φύλλου όπως εμφανίζεται στον VBE πχ. Sheet1(Φύλλο 1)
Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 17-04-14 στις 12:23.
Απάντηση με παράθεση