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

Καλησπέρα Γιώργο.

Δοκίμασε:


Κώδικας:
Option Explicit

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    
    ' Πλήκτρο διαχωριστικού δεκαδικών = 110
    ' Πλήκτρο κόμματος = 188
    
    If KeyCode = 110 Or KeyCode = 188 Then
        KeyCode = 190
    End If
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    
    ' Επιτρέπει μόνο αριθμούς, τελεία και κόμμα.
    
    If Not (IsNumeric(ChrW(KeyAscii)) Or ChrW(KeyAscii) = "," Or ChrW(KeyAscii) = ".") Then
        KeyAscii = 0
    End If
End Sub


' Για έλεχγο και μετατροπή μετά από επικόλληση:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    ' Μετατρέπει το κόμμα σε τελεία για αμερικανική μορφή δεκαδικών
    Dim strText As String
    Dim decimalSeparator As String
    decimalSeparator = Application.International(xlDecimalSeparator)
    
    strText = TextBox1.text
    strText = Replace(strText, ",", decimalSeparator)
    strText = Replace(strText, ".", decimalSeparator)
    
    If IsNumeric(strText) Then
        If InStr(strText, ",") Then
            strText = Replace(strText, ",", ".")
        End If
        TextBox1.text = strText
    Else
        TextBox1.text = vbNullString
    End If
End Sub

Καλή συνέχεια!

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

Τελευταία επεξεργασία από το χρήστη Tasos : 06-06-24 στις 00:52.
Απάντηση με παράθεση