
08-03-14, 04:16
|
 | Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού Office: Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική | | Εγγραφή: 21-10-2009
Μηνύματα: 2.035
| |
Γιώργο στο συνημμένο παράδειγμα υπάρχουν δύο προσεγγίσεις που καλύπτουν το ζητούμενο
Στο φύλλο Περιοχές κελιών υπάρχουν περιοχές (με κίτρινο φόντο) στις οποίες έχουν δοθεί τα ονόματα : NameOfRange1, NameOfRange2, NameOfRange3, NameOfRange4 και NameOfRange5.
Ο κώδικας που επιτρέπει την εισαγωγή υποδιαστολής είναι: Κώδικας: Private Sub Worksheet_Change(ByVal Target As Range)
Dim CanRun As Boolean
If Target.CountLarge > 1 Then Exit Sub
If Target.Row < 1 Then Exit Sub
If IsNumeric(Target.Value) Then
If Target.Value <> 0 Then
If Not Intersect(Target, Range("NameOfRange1")) Is Nothing Or _
Not Intersect(Target, Range("NameOfRange2")) Is Nothing Or _
Not Intersect(Target, Range("NameOfRange3")) Is Nothing Or _
Not Intersect(Target, Range("NameOfRange4")) Is Nothing Or _
Not Intersect(Target, Range("NameOfRange5")) Is Nothing Then
Application.EnableEvents = False
Target.Value = Target.Value / 100
Application.EnableEvents = True
End If
End If
End If
End Sub
Στο φύλλο Διευθύνσεις κελιών υπάρχουν μεμονωμένα κελιά (επίσης με κίτρινο φόντο για καλύτερη σήμανση) με διευθύνσεις: "A3", "B4", "C5", "D8", "D10" και "D15"
Ο κώδικας που επιτρέπει την εισαγωγή υποδιαστολής στο φύλλο αυτό είναι: Κώδικας: Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge > 1 Then Exit Sub
If Target.Row < 1 Then Exit Sub
If IsNumeric(Target.Value) Then
If Target.Value <> 0 Then
Select Case Target.Address(False, False)
Case "A3", "B4", "C5", "D8", "D10", "D15"
Application.EnableEvents = False
Target.Value = Target.Value / 100
Application.EnableEvents = True
End Select
End If
End If
End Sub
Καλή συνέχεια!
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |