Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] Διατύπωση δεκαδικού αριθμού (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/6506-diatiposi-dekadikoi-arithmoi.html)

gfevran 05-06-24 08:25

Διατύπωση δεκαδικού αριθμού
 
Καλημέρα σε όλη την κοινότητα,
Σε μια userform textbox όταν βάζουμε ένα διψήφιο ή τριψήφιο αριθμό με δύο δεκαδικά
να διατυπώνεται το δεκαδικό με "." όχι με ","
να βγάζει μήνυμα αν βάλουμε "," ή να μετατρέπεται αυτόματα με "."
Ευχαριστώ για όποια βοήθεια!

Tasos 05-06-24 14:32

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

Δοκίμασε:


Κώδικας:

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


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

Τάσος

gfevran 05-06-24 17:09

Καλησπέρα Τάσο.
Η πρόταση σου είναι ακριβώς αυτό που ήθελα, δούλεψε τέλεια.
Σε υπέρ Ευχαριστώ.

Tasos 05-06-24 19:07

Να είσαι καλά Γιώργο!

Καλό βράδυ.

Με εκτίμηση

Τάσος


Η ώρα είναι 13:05.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2