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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 09-10-14, 14:04
Όνομα: Βασίλης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 07-10-2014
Μηνύματα: 4
Προεπιλογή Διπλότυπα σε αναδυόμενη λίστα στο excel 2007

Μερικές φορές η ανάγκη δημιουργεί εκπλήξεις ανακαλύπτοντας το πόσο σημαντικό είναι να υπάρχουν τόσα χέρια βοήθειας σε ένα τόσο όμορφο μέρος. Μπράβο σας συνεχίστε!
Στο θέμα μου τώρα:
Προσπαθώ εδώ και μέρες να φτιάξω μια φόρμα τιμολογίου στο excel
Και συναντώ την εξής δυσκολία: Σε μια αναδυόμενη λίστα που έχω δημιουργήσει σε περίπου 20 κελιά ενός φύλου, η οποία παίρνει δεδομένα από ένα άλλο φύλλο, δεν μπορώ να βρω λύση με τις διπλές εγγραφές! Ρωτώντας βρήκα κάποιες λύσεις, όπως την μορφοποίηση και το χρωματισμό των διπλών εγγραφών, αλλά δεν με ικανοποιεί, εάν όχι απόλυτα, βαριά κουβέντα, δεν ικανοποιεί το σχέδιο που έχω για τη φόρμα που θέλω να δημιουργήσω: Θέλω να πω θα μου ήταν πιο ευχάριστο να βγάζει ένα μήνυμα που να με προειδοποιεί για την διπλή εγγραφή! Το αν μπορώ να την περάσω (την εγγραφή) δεν με ενδιαφέρει και τόσο. Συγνώμη εάν κούρασα.
Επισυνάπτω πιο κάτω ένα πράδειγμα...
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsx Παραδειγμα.xlsx (9,3 KB, 35 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 09-10-14, 17:04
Το 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
Προεπιλογή

Καλησπέρα
Βασίλη καλώς ήρθες στην παρέα μας.
Ο πιο κάτω κώδικας VBA θα πρέπει να επικολληθεί στο φύλλο (συμβάν Change)

Κώδικας:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 And Len(Target.Value) > 0 Then
        If Evaluate("Countif(A:A," & Target.Address & ")") > 1 Then
            MsgBox "Η Εγγραφή «" & Target.Value & "» υπάρχει ήδη και θα διαγραφεί.", _
            vbInformation, "Διαπιστώθηκε Διπλότυπο!"
            Range(Target.Address).ClearContents
        End If
    End If
End Sub
Αποθήκευσε το βιβλίο σαν .xlsm για να μπορεί να εκτελέσει εντολές.
Ο κώδικας εκτελείται αν στην στήλη Α υπάρχει διπλότυπο
Αφού δείξει μνμ μετά διαγράφει την διπλότυπη εγγραφή.
Αν θέλετε άλλη στήλη αλλάξτε στην γραμμή

If Evaluate("Countif(D:D," & Target.Address & ")") > 1 Then

και στην γραμμή

If Target.Column = 4 And Len(Target.Value) > 0 Then

τα γράμματα και τον αριθμό με τον αντίστοιχο αρ. στήλης που θέλετε πχ για D στήλη = D:D & 4 κλπ.

Τελευταία επεξεργασία από το χρήστη Spirosgr : 09-10-14 στις 17:27.
Απάντηση με παράθεση
  #3  
Παλιά 09-10-14, 22:11
Όνομα: Βασίλης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 07-10-2014
Μηνύματα: 4
Προεπιλογή

Τι να πω τώρα! Κάθ' ένας τη δουλειά του Σπύρο....άμεσα και στοχευμένα...χίλια ευχαριστώ...
Ο κώδικας είναι διαμάντι και για μένα βέβαια κάτι σαν κινέζικα. Δεν είμαι εντελώς άσχετος αλλά από κώδικα Αυτό που θέλω να ρωτήσω κάνοντας κατάχρηση τον κόπο σας είναι ότι έχοντας συγχωνεύσει μερικά κελιά, η λίστα στέκετε σε 3-4 κελιά λόγω σχεδίασης, μου βγάζει το εξής μήνυμα και δεν λειτουργεί,ο κώδικας:

Run-time error '1004':
Δεν είναι δυνατή η αλλαγή τμήματος ενός συγχωνεμένου κελιού.

Κάνοντας αλλαγή τον κώδικά σου σε:
Παράθεση:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Len(Target.Value) > 0 Then
If Evaluate("Countif(Α:Α," & Target.Address & ")") > 1 Then
MsgBox "Η Εγγραφή «" & Target.Value & "» Υπάρχει ήδη .", _
vbInformation, "Διαπιστώθηκε διπλότυπο!"

End If
End If
End Sub
...το πρόβλημα λύθηκε χωρίς βέβαια να σβήνει η διπλή εγγραφή. Απλά μου βγάζει ένα μήνυμα ότι η συγκεκριμένη εγγραφή υπάρχει ήδη και την αφήνει να συνυπάρχει. Αυτό σίγουρα συνέβει γιατί δεν έγινα πιο συγκεκριμένος! Αλλά είναι αυτό που ζητούσα από την αρχή! Μιλάμε τέλεια πράγματα! Σπύρο μου έφτιαξες τη μέρα..τη νύχτα θέλω να πω.
Αυτό που θέλω βέβαια να ρωτήσω όπως αναφέρω πιο πάνω είναι πως μπορεί ο κώδικας να χρησιμοποιηθεί σε συγχωνευμένα κελιά!
Ότι και να απαντήσετε δεκτό! Να είστε πάντα καλά.
Απάντηση με παράθεση
  #4  
Παλιά 10-10-14, 02:20
Το 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
Προεπιλογή

Τα συγχωνευμένα κελιά, γενικά δημιουργούν πολλά προβλήματα.
Καλό είναι να μην τα χρησιμοποιούμε.
Εδώ που τα λέμε, είναι άχρηστη λειτουργία.
Υπάρχουν τρόποι και την μορφή ενός εγγράφου να έχουμε όπως κι αν την θέλουμε,
αλλά και από εδώ (βλέπε εικόνα) να έχουμε στοίχιση στο κέντρο, επιλεγμένων κελιών.
Συνημμένα Thumbnails
Διπλότυπα σε αναδυόμενη λίστα στο excel 2007-capture.png  
Απάντηση με παράθεση
  #5  
Παλιά 05-11-15, 22:01
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 16-03-2012
Μηνύματα: 2
Προεπιλογή Διπλότυπα σε αναδυόμενη λίστα στο excel 2007 με 2 κριτήρια

Καλησπέρα σας. θα ήθελα την βοήθεια σας σχετικά με την εύρεση διπλότυπων εγγραφών από ένα φύλλο excel. ο κώδικας που βρήκα με την βοήθεια του Spyrosgr που τον ευχαριστώ που τον είχε δημοσιεύσει για προηγούμενο θέμα είναι αυτός:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Len(Target.Value) > 0 Then
If Evaluate("Countif(A:A," & Target.Address & ")") > 1 Then
MsgBox "Η Εγγραφή «" & Target.Value & "» υπάρχει ήδη και θα διαγραφεί.", _
vbInformation, "Διαπιστώθηκε Διπλότυπο!"
Range(Target.Address).ClearContents
End If
End If
End Sub

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

Ευχαριστώ εκ των προτέρων. Συνεχίστε την καλή δουλειά.

Επισυνάπτω ένα παράδειγμα αυτού που θέλω να κάνω. Οι στήλες που θέλω να ελέγχονται είναι οι C και D.
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm Νέο Microsoft Excel Worksheet.xlsm (15,2 KB, 16 εμφανίσεις)
Απάντηση με παράθεση
  #6  
Παλιά 06-11-15, 09:45
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Κώστα, δες μια πρόταση στο συνημμένο

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm WorningDublicates.xlsm (16,6 KB, 27 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη kapetang : 06-11-15 στις 10:06. Αιτία: Αλλαγή συνημμένου (βελτίωση κώδικα)
Απάντηση με παράθεση
  #7  
Παλιά 06-11-15, 10:08
Το 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
Προεπιλογή

Καλημέρα
Θεωρώ, ότι δεν υπάρχει ανάγκη, για καμία αλλαγή.
Ο αρχικός κώδικας, είναι αρκετός, διότι ελέγχει το παραστατικό,
που αυτό βασικά μας ενδιαφέρει, να μην είναι διπλότυπο.

Παράδειγμα επιτρεπτό
Κώδικας:
Πελάτης.......Παραστατικό...........Ποσό
Πελάτης1......100...................205
Πελάτης2......101...................205
Πελάτης1......102...................300
Παράδειγμα μη επιτρεπτό
Κώδικας:
Πελάτης.......Παραστατικό...........Ποσό
Πελάτης1......100...................205
Πελάτης2......101...................205
Πελάτης1......100...................300
Μπορεί να υπάρχουν, διπλότυπα σε πελάτη και ποσά.
Δεν μπορεί να υπάρχουν σε αρ. παραστατικού.
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Συναρτήσεις] Διπλοτυπα mail NIC Excel - Ερωτήσεις / Απαντήσεις 2 25-08-16 07:16
[Γενικά] Αναδυομενη λιστα με κριτηρια Nikos G Excel - Ερωτήσεις / Απαντήσεις 3 12-12-15 19:54
[Γενικά] Συμβατότητα από excel 2007 σε excel 2013 gfevran Excel - Ερωτήσεις / Απαντήσεις 2 12-04-14 11:01
Λίστα γενεθλίων στην Excel Tasos Ημερομηνία & ώρα 0 13-10-11 11:26


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