Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Excel07] Merge κελιών και αναδίπλωση κειμένου αλλά σύνθετο πρόβλημα (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/2072-merge-kelion-kai-anadiplosi-keimenoy-alla-sintheto-problima.html)

demou 25-09-12 16:17

Merge κελιών και αναδίπλωση κειμένου αλλά σύνθετο πρόβλημα
 
1 Συνημμένο(α)
επισυνάπτω ακριβώς τι θέλω και το εξηγώ σε ένα excel ως παράδειγμα. παρακαλώ κάντε ότι μπορείτε!!!

ευχαριστώ πολύ !!!!!

gr8styl 25-09-12 17:26

1 Συνημμένο(α)
Αγαπητή Ντέμη,
Δεν νομίζω ότι έχει καμιά χρησιμότητα να φτιάξεις merged κελιά. Μόνο σύγχυση μπορούν να προκαλέσουν.
Πχ που ανττιστοιχεί το "2" στο κελί Φύλλο1!D26 στο παράδειγμα που μας έδωσες ;

Δες δύο εναλλακτικές λύσεις μία με συγκεντρωτικό πίνακα (Pivot) και μια με τύπους και μορφοποίηση υπό όρους (Formula_CF).

Φιλικά
Θανάσης.

ΥΓ. Τη συγχώνευση κελιών (merge) πρέπει να την χρησιμοποιούμε μόνο όταν δεν μπορούμε να κάνουμε διαφορετικά, γιατί τα προβλήματα που δημιουργεί είναι πολύ περισσότερα από αυτά πιου λύνει.

Thanosp 25-09-12 17:44

1 Συνημμένο(α)
Καλησπέρα
Μία άλλη λύση με VBE
Θανάσης

demou 25-09-12 18:53

ευχαριστώ αλλά θέλω μια διευκρίνιση!!!!!!
 
Καλησπέρα σας,
ευχαριστώ πολύ για τη βοήθεια κ τους δυο κ πραγματικά θαυμάζω τις γνώσεις σας!
Θα χρησιμοποιήσω τη λύση με VBE αλλά θα ήθελα κάτι αν γίνεται.Όταν τρέχω την μακροεντολή
μου βγάζει συνεχώς παράθυρο που λέει: <<Η επιλογή περιέχει πολλές τιμές δεδομένων. Αν γίνει συγχώνευση σε ένα κελί, θα διατηρηθούν μόνο τα άνω αριστερά δεδομένα>> και για να συνεχίσω πρέπει να πατάω συνέχεια οκ. Γίνεται να μην βγαίνει καθόλου αυτό το μήνυμα και να τρέχει μόνο του μέχρι το τέλος???αν γίνεται κάνε μου αυτή την αλλαγή γιατί έχω 6 αρχεία με 35.000 γραμμές το καθένα κ θα είναι πολλά τα οκ που πρέπει να πατήσω!!!!
:thanks:

gr8styl 25-09-12 19:58

Για να αποφύγεις τα προειδοποιητικά μηνύματα, βάλε σαν πρώτη εντολή στην μακροεντολή

Application.DisplayAlerts = False

Καλή συνέχεια.

demou 25-09-12 20:11

ευχαριστώ πολύ για τη βοήθεια!!!
 
ευχαριστώ πολύ για όλα!!!!!

με βοηθήσατε πάρα πολύ!!!
Καλή σας νύχτα!!!!!
:yahoo:

Spirosgr 25-09-12 20:33

Καλησπέρα
Θα μου επιτρέψετε να πω το εξής:
Κατ αρχήν ο κώδικας αρχίζει με Ζ=4
Προσοχή
Αυτό σημαίνει ότι η λειτουργία αρχίζει από την 4η σειρά και κάτω άρα θα πρέπει να προσαρμοστεί στο πραγματικό φύλλο
Καλό είναι επίσης να οριστούν όλες οι μεταβλητές (που είναι αρκετές) και να μπει στο πάνω πάνω μέρος Option Explicit
Τα πράσινα τμήματα δεν χρειάζονται και μπορούν να διαγραφούν
ΥΓ Παρ όλα αυτά αν έρεπε να επιλέξω εγώ μια λύση θα επέλεγα τον Pivot

Thanosp 25-09-12 21:05

Καλησπέρα
Αν και για μένα η καλλίτερη λύση είναι αυτή που προτείνει ο θανάσης στα πλαίσια του Excel, έχω παρατηρήσει πολλές λύσεις που προτείνονται πχ με συγκεντρωτικοί πίνακες ή λίστες , δεν προτιμούνται ίσως θέλουν περισσότερη μελέτη και κατανόηση,Σπύρο παρατηρώ ότι είσαι σχολαστικός και έχεις δίκια
Θανάσης

Spirosgr 25-09-12 22:15

Θανάση
Το έχω κατ επανάληψη πει στα παιδιά που κατά καιρούς ζητάνε κάποια λύση ότι αν κατανοήσουν τι είναι ο Pivot θα απογειώσουν το εργαλείο που έχουν στα χέρια τους χωρίς να ξέρουν καν τύπους (στο μέτρο του δυνατού βέβαια)
Να 'σαι καλά και για τον καλό λόγο σου !
Καλή συνέχεια!

Tasos 26-09-12 08:45

Καλημέρα!
Θα συμφωνήσω με τους Θανάσηδες και τον Σπύρο στο θέμα του συγκεντρωτικού πίνακα που
σίγουρα μπορεί να μελετηθεί σε πολύ λιγότερο χρόνο από ότι το κεφάλαιο VBA & μοντέλο αντικειμένoυ Excel.

Η γνώμη μου είναι ότι τα συγχωνευμένα κελιά πρέπει να αποφεύγονται όσο γίνεται.
Προκαλούν αρκετά προβλήματα τόσο σε φύλλα εργασίας (ειδικά αν περιέχουν τύπους πίνακα) όσο και στον κώδικα VBA που αναφέρεται σε κελιά.

Πιστεύω ότι η φίλη μας Ντέμη καλύφθηκε από τις απαντήσεις που δόθηκαν.

Ωστόσο αν ήθελα να αφαιρέσω τα διπλότυπα από τις στήλες A:B παραδείγματος της θα χρησιμοποιούσα τον παρακάτω κώδικα:


Κώδικας:

Option Explicit

'Έστω ότι τα δεδομένα ξεκινούν από το κελί A1
Sub RemoveDuplicates()
    Dim i As Long, rng As Range
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    Set rng = Range("A1:B" & Range("A" & Rows.Count).End(xlUp).Row)
    For i = rng.Count / 2 To 2 Step -1
        If Cells(i, 1).Value = Cells(i - 1, 1).Value Then rng.Rows(i).ClearContents
    Next
    Application.Calculation = xlCalculationAutomatic
End Sub

Φιλικά

Τάσος


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

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


Search Engine Optimization by vBSEO 3.3.2