Καλημέρα
Κατ' αρχήν, δεν πρέπει να δουλεύεις, με
συγχωνευμένα κελιά...
Δεν είναι καλό.
Άλλαξε το βιβλίο σε .xlsm για να «δέχεται» κώδικα.
Άλλαξε το
κωδικό όνομα του φύλλου (Φύλλο1) σε Sh1
Βάλε στο κελί Κ6, έναν
τίτλο πχ Τιμές.
Με δεξί κλικ στην Tab του φύλλου, και κλικ στο View Code ή Εμφάνιση Κώδικα
μεταφερόμαστε πίσω στον «χώρο» της
Vba...
Αντέγραψε τον κώδικα:
Κώδικας:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Columns.Count > 1 Then Exit Sub
If Target.Rows.Count > 1 Then Exit Sub
If Target.Column <> 4 Then Exit Sub
If Target.Row < 4 Or Target.Row > 9 Then Exit Sub
Dim Lrow As Long
Lrow = Sh1.Cells(Rows.Count, 11).End(xlUp).Row + 1
Sh1.Cells(Lrow, 11).NumberFormat = "#,##0.00"
Sh1.Cells(Lrow, 11).Value = Sh1.Cells(13, 6).Value
Sh1.Cells(Lrow, 12).NumberFormat = "dd/mm/yyyy"
Sh1.Cells(Lrow, 12).Value = Date
End Sub
Σημειώσεις:
Αν το
Option Explicit υπάρχει ήδη στην αρχή, διέγραψέ το, να μην υπάρχει δύο φορές...
Οι δύο τελευταίες γραμμές του κώδικα,
είναι δική μου προσθήκη, για να έχεις στην διπλανή στήλη, μια ημερομηνία καταχώρησης.
Αν δεν το θέλεις, διέγραψέ τις...
Η μορφοποίηση: "#,##0.00" (αριθμός με χιλιάδες και δύο δεκαδικά, που εμφανίζει πάντα
τουλάχιστον μονάδες και τα δύο δεκαδικά) μπορεί να αλλάξει κατά το δοκούν...
Η θέση του (,) και (.) στην μορφοποίηση, έχει να κάνει με το λειτουργικό και το office.
Ανάλογα την γλώσσα και τις ρυθμίσεις θα μπορούσε να είναι: "#.##0,00"
Ο κώδικας έχει δημιουργηθεί για
αλλαγές στην κίτρινη περιοχή...
Θα μπορούσε να γίνει για αλλαγές στην μπλε περιοχή ή
στον
υπολογισμό του φύλλου και όχι στις αλλαγές...