Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Συναρτήσεις] Αυτόματη συμπλήρωση κελιών (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/573-aytomati-symplirosi-kelion.html)

PanosPan 29-04-10 10:16

Αυτόματη συμπλήρωση κελιών
 
2 Συνημμένο(α)
Παιδιά καλημέρα,
Θα ήθελα την βοήθειά σας σε κάτι,
Έστω ότι έχω «ορίσει περιοχές» με το όνομα «ΓΡΑΜΜΑΤΑ» και «ΑΡΙΘΜΟΙ» (Α2-Β3) στο φύλλο [ΓΡΑΜΜΑΤΑ-ΑΡΙΘΜΟΙ]
Αναρωτιέμαι,
Εάν θα μπορούσα στο φύλλο [ΛΙΣΤΑ] όταν επιλέγω από πτυσσόμενη λίστα στο (Α2) την τιμή «ΑΒΓ» τότε στο (Β2) να συμπληρωθούν αυτόματα οι αριθμοί (123), και αντίστοιχα όταν (Α2=ΔΕΖ) τότε ΑΥΤΟΜΑΤΑ το (Β2=123).
Σημ. τις τιμές ΑΡΙΘΜΟΙ στο κελί (Β2) θα μπορούσα να τους έχω και εκτός πτυσσόμενης λίστας (σε απλό κελί-στήλη).
Ευχαριστώ πολύ
Πάνος

Tasos 29-04-10 18:40

1 Συνημμένο(α)
Πάνο καλησπέρα!

Δες 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));"Δεν υπάρχει")
Φιλικά

Τάσος

PanosPan 30-04-10 07:56

Τάσο σε ευχαριστώ πάρα πολύ,
για άλλη μια φορά "καθάρισες".
Να σε παρακαλέσω όμως κάτι, είπες:"Για τη λύση με χρήση VBA πέρασε τον παρακάτω κώδικα στη λειτουργική μονάδα του φύλλου "ΛΙΣΤΑ". Εάν μπορείς να δώσεις περισσότερες πληροφορίες πάνω σε αυτό (πχ. που είναι η λειτουργική μονάδα;) καθώς δεν έχω ξαναασχοληθεί με VBA.

PanosPan 30-04-10 08:13

οκ Τάσο βλέπω το συνημμένο σου. νομίζω θα βγάλω άκρη. Σ' ευχαριστώ

Tasos 30-04-10 08:18

2 Συνημμένο(α)
Καλημέρα!

Με δεξί κλικ πάνω στην καρτέλα "ΛΙΣΤΑ" επιλέγεις "Προβολή κώδικα"

Συνημμένο Αρχείο 382


Στο παράθυρο που θα εμφανιστεί επικόλλησε τον κώδικα και αποθήκευσε το βιβλίο.

Συνημμένο Αρχείο 383



Τάσος

PanosPan 30-04-10 13:06

Σε ευχαριστώ πολύ Τάσο
καλή σου ημέρα


Η ώρα είναι 18:39.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2