
04-05-20, 18:56
|
 | Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού Office: Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική | | Εγγραφή: 21-10-2009
Μηνύματα: 2.035
| |
Γιώργο μου το συμβάν "TextBox3_BeforeUpdate" θα τρέξει μόνο αν προκληθεί από τον χρήστη.
Δεν τρέχει όταν αλλάξει η τιμή του πεδίου προγραμματιστικά.
Προτείνω να χρησιμοποιήσεις την παρακάτω συνάρτηση: Κώδικας: Private Function ValueExists(strValue As String) As Boolean
If strValue = "" Then Exit Function
Set fCell = Worksheets("Data").Range("c:c").Find(What:=TextBox3.Value, LookIn:=xlValues, Lookat:=xlWhole)
ValueExists = Not fCell Is Nothing
End Function
Η συνάρτηση ελέγχει αν υπάρχει διπλότυπο στη στήλη C και μπορεί να κληθεί από οποιοδήποτε σημείο της φόρμας ως εξής: Κώδικας: Private Sub TextBox3_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If ValueExists(Trim(TextBox3.Value)) Then
Cancel = True
'........
End If
End Sub
ή Κώδικας: Private Sub ListBox1_Click()
Dim say As Long, a As Byte
If ValueExists(ListBox1.Column(2)) Then
' Υπάρχει διπλοεγγραφή. Κάνε κάτι.
' πχ. Exit Sub ή Msgbox
End If
'.............
'.............
End Sub
Καλή συνέχεια!
Με εκτίμηση
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |