Εμφάνιση ενός μόνο μηνύματος
  #4  
Παλιά 22-04-15, 13:24
Το avatar του χρήστη Spirosgr
Spirosgr Ο χρήστης Spirosgr δεν είναι συνδεδεμένος
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού 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) είσαι έτοιμος
Απάντηση με παράθεση