Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [VBA] Διατύπωση δεκαδικού αριθμού

Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 05-06-24, 09:25
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-04-2013
Μηνύματα: 246
Προεπιλογή Διατύπωση δεκαδικού αριθμού

Καλημέρα σε όλη την κοινότητα,
Σε μια userform textbox όταν βάζουμε ένα διψήφιο ή τριψήφιο αριθμό με δύο δεκαδικά
να διατυπώνεται το δεκαδικό με "." όχι με ","
να βγάζει μήνυμα αν βάλουμε "," ή να μετατρέπεται αυτόματα με "."
Ευχαριστώ για όποια βοήθεια!
Απάντηση με παράθεση
  #2  
Παλιά 05-06-24, 15:32
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

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

Δοκίμασε:


Κώδικας:
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 στις 01:52.
Απάντηση με παράθεση
  #3  
Παλιά 05-06-24, 18:09
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-04-2013
Μηνύματα: 246
Προεπιλογή

Καλησπέρα Τάσο.
Η πρόταση σου είναι ακριβώς αυτό που ήθελα, δούλεψε τέλεια.
Σε υπέρ Ευχαριστώ.
Απάντηση με παράθεση
  #4  
Παλιά 05-06-24, 20:07
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

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

Καλό βράδυ.

Με εκτίμηση

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


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Excel07] Μορφή αριθμού George R Excel - Ερωτήσεις / Απαντήσεις 2 04-10-23 13:29
[Μορφοποίηση] Μετατροπή δεκαδικού σε κλάσμα ΔΗΜΗΤΡΙΟΣ Excel - Ερωτήσεις / Απαντήσεις 16 24-11-20 11:08
[Γενικά] Εύρεση αριθμού. ΔΗΜΗΤΡΙΟΣ Excel - Ερωτήσεις / Απαντήσεις 6 07-07-19 17:03
[Excel07] Δημιουργία αριθμού George R Excel - Ερωτήσεις / Απαντήσεις 2 24-07-15 14:23
[Συναρτήσεις] Εύρεση και διατύπωση ημέρας συγκεκριμμένης ημερομηνίας. Fotis1991 Excel - Ερωτήσεις / Απαντήσεις 6 20-10-12 01:47


Η ώρα είναι 08:11.