
22-04-15, 13:24
|
 | Συντονιστής Όνομα: Σπύρος Τσιλιγιάννης Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική | | Εγγραφή: 22-11-2011 Περιοχή: Αθήνα
Μηνύματα: 2.321
| |
Καλησπέρα
Μια πρόταση είναι η εξής:
Για να μην έχουμε (ενδεχόμενα) πρόβλημα, κυκλικών αναφορών,
αν ασχοληθούμε με συναρτήσεις, τότε:
1) κάνε το βιβλίο .xlsm
2) δεξί κλικ στην tab του φύλλου και στο μενού επέλεξε κώδικα
3) άλλαξε το κωδικό όνομα του φύλλου σε Sh1
4) αντέγραψε τον κώδικα Κώδικας: Private Sub Worksheet_Change(ByVal Target As Range)
Dim exists As Long
If Target.Column <> 1 Then Exit Sub
If Target.Row < 2 Then Exit Sub
If Target.Rows.Count > 1 Then Exit Sub
If Target.Columns.Count > 1 Then Exit Sub
With Target
On Error GoTo err:
exists = WorksheetFunction.Match(.Value, Range("a2:a100"), 0) + 1
If exists = .Row Then
MsgBox "Δεν βρέθηκε εγγραφή ID"
Sh1.Cells(.Row, 2).Activate
Exit Sub
Else
Sh1.Cells(.Row, .Column + 1).Value = Sh1.Cells(exists, 2).Value
Sh1.Cells(.Row, .Column + 2).Value = Sh1.Cells(exists, 3).Value
Sh1.Cells(.Row + 1, 1).Activate
End If
End With
err:
End Sub
5) τροποποίησε την γραμμή Range("a2:a100") αν χρειάζεται.
6) είσαι έτοιμος
|