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/1621-kataxorhsh-keimenoy.html)

ΗΛΙΑΣ 08-02-12 22:32

ΚΑΤΑΧΩΡΗΣΗ ΚΕΙΜΕΝΟΥ
 
1 Συνημμένο(α)
Καλησπέρα.
Θα ήθελα να ρωτήσω το εξής:
Αν υπάρχει η δυνατότητα καταχώρησης κειμένου (πχ ονόματος) σε ένα κελί και κατόπιν το όνομα αυτό να καταχωρείται αυτόματα σε ΛΙΣΤΑ ΟΝΟΜΑΤΩΝ (ταξινομιμένο) με άλλα ονόματα στο ίδιο φύλλο.
Κατά προτίμηση χωρίς VBA.
Στο συνημμένο έγγραφο εμφαίνεται καλύτερα η όλη διαδικασία.
ΕΥΧΑΡΙΣΤΩ.

gr8styl 09-02-12 01:44

Καλώς όρισες φίλε Ηλία στην παρέα

Το πιο απλό είναι να κάνεις επικόλληση του παρακάτω κώδικα στον κώδικα του Φύλλο1 (δεξί κλικ στο όνομα του φύλλου)
Κώδικας:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
    Range("a" & Cells(Rows.Count, "a").End(xlUp).Row + 1) = Range("$A$2")
End If
End Sub

Σαν δεύτερη εναλλακτική χωρίς VBA υπάρχει και η προσέγγιση της Φόρμας Δεδομένων (Menu Data Form)

Aν δεν σε καλύπτουν αυτά πρέπει να μας δώσεις περισσότερες πληροφορίες για την δομή των δεδομένων σου για να δούμε αν αξίζει να το παλέψουμε περισσότερο.

Γενικά να ξέρεις ότι για λύσεις με χρήση τύπων και όχι VBA τα κελιά που καταχωρούμε τα δεδομένα (Α2 στο παράδειγμά σου) δεν πρέπει να χάνουν τα περιεχόμενα τους.

Θανάσης.

Spirosgr 09-02-12 09:06

Καλημέρα κι από 'μένα
Θανάση επειδή θα με ενδιέφερε κι εμένα κάποιο τέτοιο είδος κώδικα
τον χρησιμοποίησα και είδα ότι ναι μεν ταξινομεί τα ονόματα στο τέλος της λίστας
αλλά όχι αλφαβητικά.
Είναι δυνατόν να γίνει κάτι τέτοιο;
Και αν ναι παράκληση να μου επισημάνεις τι πρέπει να αλλαχτεί αν αλλάξει το κελί καταχώρησης ή η λίστα προορισμού γιατί από κώδικες δεν πάω καλά.
Να πω ακόμα ότι το office 2010 που έχω είναι χ64 γιατί έχω διαβάσει ότι κάποιοι κώδικες ίσως να μην λειτουργούν αν είναι φτιαγμένοι σε χ32.
Ευχαριστώ

gr8styl 09-02-12 14:34

:oooops:

Ξέχασα ότι θέλαμε ταξινόμηση.

Διορθωμένος κώδικας που κάνει ταξινόμηση αλλά και καθαρίζει το κελί καταχώρισης μετά την αντιγραφή στην λίστα

Κώδικας:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
    Application.EnableEvents = False
    Range("a" & Cells(Rows.Count, "a").End(xlUp).Row + 1) = Target
    Range("a3:a" & Cells(Rows.Count, "a").End(xlUp).Row).Sort _
        Key1:=Range("a3"), Order1:=xlAscending, Header:=xlYes
    Target.ClearContents
    Application.EnableEvents = True
End If
End Sub

Ο κώδικας υποθέτει κελί καταχώρισης το Α2 και Λίστα από το Α3 και κάτω.
Αν θέλουμε κελί καταχώρισης το C3 και Λίστα από το F2 και κάτω αλλάζουμε
το "$A$2" σε "$C$3"
τα 3 "a" σε "f"
το "a3:a" σε "f2:f"
και το "a3" σε "f2"

Ελπίζω να επανόρθωσα :033:

Spirosgr 09-02-12 15:20

Ο κώδικας δουλεύει από την 2η καταχώρηση και μετά
ΠΧ εισάγουμε την λέξη "εεδ" και μπαίνει στο Α3
εισάγουμε την λέξη "εεβ" και μπαίνει στο Α4
εισάγουμε την λέξη "εεα" και μπαίνει στο Α4 ενώ η "εεβ" μπαίνει στο Α5 κανονικά
δεν μετακινείται όμως και δεν ταξινομείται η αρχική καταχώρηση "εεδ" παραμένει στο Α3

gr8styl 09-02-12 16:05

Παράθεση:

Αρχική Δημοσίευση από spirosgr (Μήνυμα 9339)
Ο κώδικας δουλεύει από την 2η καταχώρηση και μετά
ΠΧ εισάγουμε την λέξη "εεδ" και μπαίνει στο Α3
εισάγουμε την λέξη "εεβ" και μπαίνει στο Α4
εισάγουμε την λέξη "εεα" και μπαίνει στο Α4 ενώ η "εεβ" μπαίνει στο Α5 κανονικά
δεν μετακινείται όμως και δεν ταξινομείται η αρχική καταχώρηση "εεδ" παραμένει στο Α3

Σπύρο,
Αυτό συμβαίνει γιατί το πρώτο κελί της Λίστας δεν συμετέχει στην ταξινόμηση.
Το θεωρώ (Header:=xlYes) ότι ειναι επικεφαλίδα, όπως στο αρχικό παράδειγμα του Ηλία.
Άρα ή αλλάζεις το Header:=xlYes σε Header:=xlΝο ή γράφεις μια επικεφαλίδα για την λίστα σου.

Θανάσης

Spirosgr 09-02-12 17:34

Ευχαριστώ πολύ
Πολύτιμη η βοήθεια σου!

ΗΛΙΑΣ 09-02-12 19:52

ΕΥΧΑΡΙΣΤΩ ΠΟΛΥ ΓΙΑ ΤΗΝ ΠΟΛΥΤΙΜΗ ΒΟΗΘΕΙΑ.


Η ώρα είναι 01:14.

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


Search Engine Optimization by vBSEO 3.3.2