Θέμα: Συναρτήσεις Αυτόματη συμπλήρωση κελιών

Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 29-04-10, 18:40
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Πάνο καλησπέρα!

Δες 2 διαφορετικές προσεγγίσεις στο συνημμένο παράδειγμα.

Η μία με χρήση VBA και η χρήση τύπων.

Για τη λύση με χρήση VBA πέρασε τον παρακάτω κώδικα στη λειτουργική μονάδα
του φύλλου "ΛΙΣΤΑ":
Κώδικας:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim icol%, c As Range
    If Target.Column > 2 Or Target.Count > 1 Then Exit Sub
    If Target.Validation.Value Then
        icol = IIf(Target.Column = 1, 1, -1)
        Set c = Tabelle1.Range(Cells(2, Target.Column).Address, _
                               Cells(1000, Target.Column).Address).Find(Target.Value).Offset(, icol)
        If Not c Is Nothing Then
            Application.EnableEvents = False
            Target.Offset(, icol) = c
            Application.EnableEvents = True
        End If
    End If
End Sub

Ό κώδικας αυτός προϋποθέτει οι στήλες με τα Dropdown να έχουν την ίδια διάταξη
όπως στο συνημμένο σου.
Το όνομα Tabelle1 είναι το κωδικό όνομα του φύλλου "ΓΡΑΜΜΑΤΑ-ΑΡΙΘΜΟΙ" έτσι όπως εμφανίζεται στον VBE (αναλόγως την γλώσσα του Office, το συναντάμε σαν Sheet1, Tabelle1, ή Φύλλο1 κτλ.)


Για τη λύση με χρήση τύπων θα χρειαστείς 4 στήλες (βλ.συνημμένο για περισσότερες λεπτομέρειες).
με τους τύπους (Excel 2007):

Για την πρώτη στήλη (A):
Κώδικας:
=IFERROR(INDEX(ΑΡΙΘΜΟΙ;MATCH(A2;ΓΡΑΜΜΑΤΑ;0));"Δεν υπάρχει")
Για τη δεύτερη στήλη (D):
Κώδικας:
 =IFERROR(INDEX(ΓΡΑΜΜΑΤΑ;MATCH(D2;ΑΡΙΘΜΟΙ;0));"Δεν υπάρχει")
Φιλικά

Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm OnChange.xlsm (210,5 KB, 147 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση