Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [Συναρτήσεις] αυτόματη κατάργηση διπλότυπων

Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 02-10-17, 10:35
Όνομα: Αντώνης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-04-2013
Μηνύματα: 158
Προεπιλογή αυτόματη κατάργηση διπλότυπων

Καλή σας μέρα,
Χρειάζομαι μια μικρή βοήθεια.
Επιθυμώ να φέρω μοναδικές εγγραφές από διαφορετικά φύλλα
σε ένα συγκεντρωτικό.
Μέχρι τώρα έκανα τα εξής.

1. Αντιγραφή από όλα τα φύλλα
2. Επικόλληση στο κεντρικό
3. Ταξινόμηση
4. Κατάργηση διπλότυπων.

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

Ευχαριστώ.
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsx country.xlsx (14,5 KB, 6 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 02-10-17, 13:28
Το avatar του χρήστη 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
Προεπιλογή

Αντιγράφουμε τον πιο κάτω κώδικα, σε μια module.
Συνδέουμε τον κώδικα, σε ένα κουμπί ή τον «τρέχουμε» με όποια άλλη μέθοδο θέλουμε.

Κώδικας:
Sub Combine()
    Dim sh As Worksheet _
      , Lrow As Long, Nrow As Long _
      , Rng As Range, tRng As Range _
      , i As Long

    Application.ScreenUpdating = False

    Lrow = Sheet1.Cells(Rows.Count, 2).End(xlUp).Row
    Set Rng = Sheet1.Range("b7:b" & Lrow)

    If Lrow = 6 Then GoTo cnt_Here:

    Rng.ClearContents

cnt_Here:
    For i = 2 To ThisWorkbook.Sheets.Count
        Lrow = 0
        Nrow = 0
        Lrow = Sheets(i).Cells(Rows.Count, 2).End(xlUp).Row
        Nrow = Sheet1.Cells(Rows.Count, 2).End(xlUp).Row + 1
        Sheets(i).Range("b7:b" & Lrow).Copy _
                Destination:=Sheet1.Cells(Nrow, 2)
    Next i

    Lrow = 0
    Lrow = Sheet1.Cells(Rows.Count, 2).End(xlUp).Row
    Set tRng = Sheet1.Range("b7:b" & Lrow)

    tRng.RemoveDuplicates Columns:=1, Header:=xlYes
    
    Sheet1.Sort.SortFields.Clear
    Sheet1.Sort.SortFields.Add Key:=tRng, _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With Sheet1.Sort
        .SetRange tRng
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

End Sub
Σημειώσεις:
Ο κώδικας, μεταφέρει τις εγγραφές από όλα τα (ν) φύλλα του βιβλίου, στο Total.

Κατόπιν, διαγράφει τα διπλότυπα και ταξiνομεί Α-Ω ή Α-Ζ

Το φύλλο Total, θα πρέπει να παραμείνει με κωδικό όνομα = Sheet1 και
πάντα στην πρώτη θέση του βιβλίου.

Οι εγγραφές στα φύλλα, θα πρέπει να είναι στην μορφή και διάταξη
του παραδειγματικού βιβλίου.

Το βιβλίο, θα πρέπει να αποθηκευτεί, ως .xlsm
Απάντηση με παράθεση
  #3  
Παλιά 02-10-17, 13:41
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Αντώνη δες μια υλοποίηση, με κώδικα VBA, στο συνημμένο.
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm country2.xlsm (30,3 KB, 27 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη kapetang : 02-10-17 στις 15:20. Αιτία: Αλλαγή συνημμένου
Απάντηση με παράθεση
  #4  
Παλιά 02-10-17, 13:54
Το avatar του χρήστη 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
Προεπιλογή

Γιώργο, ο κώδικάς σου, έχει ένα σφάλμα.

Ξεκινώντας θα πρέπει να καθαρίζει την περιοχή στο Total, διότι αν
για παράδειγμα έχουμε 100 εγγραφές και μετά την ανανέωση έχουμε 90
θα παραμείνουν 10 εγγραφές που δεν πρέπει...
Απάντηση με παράθεση
  #5  
Παλιά 02-10-17, 14:15
Όνομα: Αντώνης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-04-2013
Μηνύματα: 158
Προεπιλογή

Ευχαριστώ πολύ για άλλη μια φορά για την βοήθεια.
Απάντηση με παράθεση
  #6  
Παλιά 02-10-17, 14:49
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Σπύρο δεν υπάρχει λάθος.

Οι εγγραφές που θα καταλήξουν στο φύλλο "Total" είναι i.

Πριν από την αντιγραφή τους καθαρίζονται i+5, γραμμές.

Έτσι ανάμεσα στα νέα δεδομένα και στα τυχόν παλιά θα υπάρχουν, για διάκριση, 5 κενές γραμμές.
Απάντηση με παράθεση
  #7  
Παλιά 02-10-17, 14:54
Το avatar του χρήστη 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
Προεπιλογή

Γράψε στο φύλλο 100, κάτω από το Belarus πχ Hellas και από κάτω ότι να ναι πχ ΧΧΧΧ
Εκτέλεσε τον κώδικα.
Σβήσε τα πιο πάνω από το φύλλο 100 και εκτέλεσε πάλι...
Απάντηση με παράθεση
  #8  
Παλιά 02-10-17, 15:14
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Σπύρο έχεις δίκιο, αλλά το λάθος είναι ότι στον κώδικα αντί:

rng.Resize(i + 5).ClearContents, από αβλεψία έγγραψα:

rng.Resize(i + 5).ClearComments
Απάντηση με παράθεση
  #9  
Παλιά 02-10-17, 15:16
Το avatar του χρήστη 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
Προεπιλογή

Ok, όλα καλά!
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Εκθέσεις ] Κατάργηση κενού διαστήματος mgeorge Access - Ερωτήσεις / Απαντήσεις 6 17-02-15 19:43
Κατάργηση φίλτρου σε υποφόρμα parara Access - Ερωτήσεις / Απαντήσεις 3 27-09-13 09:45
Κατάργηση φίλτρου σε υποφόρμα parara Access - Ερωτήσεις / Απαντήσεις 0 26-09-13 13:21
Κατάργηση διπλοεγγραφών με κριτήριο georgeserafeim Excel - Ερωτήσεις / Απαντήσεις 2 02-06-10 14:11
Dublicates Remover - Αφαίρεση διπλότυπων εγγραφών στην Access Ms-Office-Development Team Access samples - Χρήσιμα αρχεία & παραδείγματα 0 11-04-10 15:20


Η ώρα είναι 08:02.