Το αρχείο, δεν δουλεύει σωστά.
Στο φύλλο2, δεν χρειάζεται καμία εντολή και πρέπει να διαγραφεί.
Στο φύλλο1, έχεις αντιγράψει κομμάτια κώδικα, που δεν είναι σωστά.
Τι θα πρέπει να κάνεις.
Στο φύλλο1: Κώδικας:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Rows.Count > 1 Then Exit Sub
If Target.Columns.Count > 1 Then Exit Sub
If Target.Column <> 3 Then Exit Sub
If Target.Value = vbNullString Then Exit Sub
Dim Lrow As Long
Lrow = Φύλλο2.ListObjects("Πίνακας1").ListRows.Count + 1
Φύλλο2.Cells(Lrow + 1, 1).Value = Target.Value
Φύλλο2.Range("Πίνακας1[#All]").RemoveDuplicates Columns:=1, Header:=xlYes
' iSort
End Sub
Αν θέλουμε στο φύλλο2, οι τιμές, να είναι και αλφαβητικά ταξινομημένες, τότε
σε μια module: Κώδικας:
Sub iSort()
Φύλλο2.ListObjects("Πίνακας1").Sort.SortFields. _
Clear
Φύλλο2.ListObjects("Πίνακας1").Sort.SortFields. _
Add Key:=Range("Πίνακας1[[#All],[stili1]]"), SortOn:=xlSortOnValues, Order _
:=xlAscending, DataOption:=xlSortNormal
With Φύλλο2.ListObjects("Πίνακας1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
και ενεργοποιούμε την προτελευταία γραμμή (
πράσινο)
Στην Επικύρωση (validation)...βλέπε εικόνες 1,2
Σημείωση:
Αν κανείς ξεκινήσει από την αρχή την διαδικασία,
δηλαδή στο φύλλο2, έχει έναν «παρθένο» πίνακα με μια κενή γραμμή, τότε
δεν θα υπάρχει μετά την πρώτη καταχώρηση, η κενή γραμμή-κελί στον πίνακα
που εσφαλμένα υπήρχε μέχρι τώρα.