Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] Πρόβλημα με error σε κώδικα (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/4166-problima-me-error-se-kodika.html)

kolekas 08-05-16 23:19

Πρόβλημα με error σε κώδικα
 
Καλησπέρα σε όλη την παρέα και πάλι
έχω το έξεις πρόβλημα.
γράφοντας σε ένα useform και την πράξη στον πιο κάτω κωδικά.
γράφω στο txtRegularHours και αν κάνω λάθος και σβήσω τα νούμερα τότε βγάζει αυτό το error
run-time error 13: type mismatch
το πρόβλημα το κάνει εκεί που έχω κάνει κόκκινα τα γραμμα .
τι μπορώ να κάνω?
ευχαριστώ!

Private Sub txtRegularHours_Change()
If txtRegularHours = "" Or txtRegularHours = "." Then
If txtOTHours = "" Or txtOTHours = "." Then
txtTotalPay = ""
Exit Sub
End If
End If

If txtRegularHours = "" Or txtRegularHours = "." Then
Me.txtTotalPay = (1 * Me.txtOTHours)
Exit Sub
End If

If txtOTHours = "" Then
Me.txtTotalPay = (1 * Me.txtRegularHours)
Else

Me.txtTotalPay = (1 * Me.txtRegularHours) + (Me.txtOTHours * 1)

End If

kolekas 10-05-16 08:10

Καλημέρα!
Κάποια βοήθεια κανείς;

nikolassor 11-05-16 15:29

Δοκίμασε να βάλεις " On Error Resume Next " πριν από το σφάλμα σου.

Ίσως επειδή ενεργοποιείται με την κάθε αλλαγή η εντολή "Change()", την ώρα που αδειάζεις το πεδίο, δεν έχει με τι να κάνει τον πολλαπλασιασμό.
Είχα αντιμετωπίσει κάτι παρόμοιο προσθέτοντας ένα μηδενικό ώστε να υπάρχει πάντα ένας αριθμός για να μπορεί να κάνει την πράξη.
πχ.:
Me.txtTotalPay = (1 * Me.txtRegularHours + 0) + (Me.txtOTHours + 0 * 1)

Δεν ξέρω αν είναι σωστό ή αν θα σου δουλέψει, αλλά είχε πιάσει σε μένα.

Αν θέλεις βάλε και ένα συνημμένο...

kolekas 11-05-16 19:14

Καλησπέρα φίλε nikolassor
Έβαλα αυτό που ειπες On Error Resume Next και δουλεύει μία χαρά.
Ευχαριστώ πάρα πολύ εσένα και όλη την παραλία εγώ μέσα κάνετε καλή δουλεθα.
Ευχαριστώ!!!!! Και πάλι.


Η ώρα είναι 18:29.

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


Search Engine Optimization by vBSEO 3.3.2