Καλημέρα
Για το ζητούμενο χρειάζονται δύο κώδικες:
Θεωρείται, ότι η γραμμή 1 του φύλλου, περιέχει κεφαλίδες.
Ο πρώτος κώδικας μπαίνει στο
φύλλο και ενεργοποιήται αν
επιλέξουμε το
πρώτο διαθέσιμο κενό κελί στην στήλη Α.
Υπάρχουν και κάποιοι έλεγχοι, ώστε να
μην «τρέχει» αν
δεν επιλέξουμε το
συγκεκριμένο κελί και μόνο.
Κώδικας:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Lr As Long
If Target.Column <> 1 Then Exit Sub
If Target.Row = 1 Then Exit Sub
If Target.Columns.Count > 1 Then Exit Sub
If Target.Rows.Count > 1 Then Exit Sub
Lr = Cells(Rows.Count, 1).End(xlUp).Row + 1
If UserForm1.Visible = True Then
Exit Sub
Else
If Target.Row = Lr Then UserForm1.Show
End If
End Sub
Ο δεύτερος,
συνδέεται με το κουμπί OK της φόρμας και
εισάγει
τα περιεχόμενα των text-boxes 1 και 2 στα
κατάλληλα κελιά των στηλών Α και Β.
Ταυτόχρονα, «καθαρίζει» τα text-boxes 1 και 2 και επιλέγει το
επόμενο, κενό κελί.
Κώδικας:
Private Sub CommandButton1_Click()
Dim Lr As Long
Lr = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(Lr, 1).Value = TextBox1.Value
Cells(Lr, 2).Value = TextBox2.Value
TextBox1.Value = ""
TextBox2.Value = ""
TextBox1.SetFocus
Cells(Lr + 1, 1).Activate
End Sub
Σημειώσεις:
1
Οι κώδικες είναι
παραδειγματικοί και θα πρέπει,
να
προσαρμοστούν στο ζητούμενο (αποτέλεσμα) του κάθε χρήστη,
αν οι συγκεκριμένες λειτουργίες, δεν καλύπτουν το 100% του αποτελέσματος.
2
Στις
ιδιότητες της φόρμας, έχει
επιτραπεί η επιλογή κελιών, ενώ η φόρμα είναι «ανοιχτή».
Παρατηρήσεις:
1
Το αυτοματοποιημένο άνοιγμα της φόρμας, για πολλούς λόγους
ένας εκ των οποίων είναι το Undo, ίσως θα έπρεπε να
μην υπάρχει και να γίνεται με κουμπί.
2
Επειδή,
δεν διευκρινίζεται το περιεχόμενο των text-boxes, ίσως θα έπρεπε να υπάρχει μια μικρή διόρθωση αν
είναι κείμενα, ακαίρεοι, δεκαδικοί, ημερομηνίες κλπ.
3
Επιλογή και διόρθωση, ήδη «γεμάτων» κελιών δεν υποστηρίζεται,
μέσω φόρμας, αφού δεν ζητήθηκε.