Forum

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

rania1984 31-08-14 16:06

Συγχώνευση κελιών
 
1 Συνημμένο(α)
Έχω λεπτομέρειες μέσα στο αρχείο, αν μπορεί να βοηθήσει κάποιος.
Ευχαριστώ.

Spirosgr 01-09-14 08:21

Καλημέρα
Κατ' αρχήν κάνε το βιβλίο σου .xlsm και όχι .xlsx που είναι το δείγμα σου
Το ζητούμενο έτσι που το θέλεις ΔΕΝ μπορεί να εκτελεστεί από ένα μόνο κουμπί (toggle button)

Πρέπει να δημιουργήσουμε έναν κώδικα ο οποίος να ακολουθεί την εξής διαδικασία:
1 Να «ξεκλειδώσει» το φύλλο
2 Να συγχωνεύσει τα επιλεγμένα κελιά αν δεν είναι συγχωνευμένα (και αντίστροφα)
3 Να «κλειδώσει» το φύλλο
Εδώ λοιπόν με βάση το ζητούμενο οι ενέργειες που θέλεις να κάνεις
δεν μπορούν να εκτελεστούν από ένα (toggle) κουμπί για τον εξής λόγο.
Αν οι ενέργειες είναι :
επιλέγω κελιά > πιέζω κουμπί > ξεκλειδώνει > συγχωνεύει > κλειδώνει > γράφω (όλα καλά)
Αντίθετα:
επιλέγω κελιά > πιέζω κουμπί > ξεκλειδώνει > αποσυγχωνεύει > κλειδώνει > μορφοποιώ
δεν θα μπορεί να γίνει λόγω κλειδώματος του φύλλου.

Κώδικας:

Sub AutoMerge()
    Application.ScreenUpdating = False
    Sheet1.Unprotect Password:="1234"
    With Selection
        If Selection.MergeCells = True Then Selection.UnMerge Else Selection.Merge
    End With
    Sheet1.Protect Password:="1234"
End Sub

Ο κώδικας πιο πάνω κάνει την δουλειά σε ένα (toggle) κουμπί
εφ' όσον μετά δεν θέλουμε να επεξεργαστούμε (με μορφοποίηση για παράδειγμα) τα αποσυγχωνευμένα κελιά

Άλλως καταργούμε την τελευταία γραμμή Sheet1.Protect Password:="1234"
Το φύλλο μένει «ξεκλείδωτο» και το επεξεργαζόμαστε.
Φτιάξε ένα δεύτερο κουμπί με την καταργημένη γραμμή και σύνδεσε σε αυτό τον κώδικα:

Κώδικας:

Sub LockSheet()
    Sheet1.Protect Password:="1234"
End Sub

για να το κλειδώνεις μετά την επεξεργασία μορφοποίησης

Σημείωση:
Από την στιγμή που έχουμε κώδικα για την προστασία
με εμφανές το Password σε οποιονδήποτε πάει πίσω (Alt + F11) στην VBA
δεν ξέρω σε τι εξυπηρετεί το κλείδωμα πέραν της προστασίας πχ σε τύπους κλπ
Αν πρέπει να κλειδωθεί το φύλλο από την πρόσβαση σε τρίτους θα πρέπει να «εξαφανιστεί» και η module
Μια πρόχειρη αλλά σχετικά καλή λύση είναι:
Όπου Password:="1234" να μπει
Password:=Sheet2.Range("Pass").Value
που σε οδηγεί σε ένα άλλο φύλλο το οποίο θα κάνεις από τις ιδιότητες φύλλου VeryHidden

*Όπου Sheet1, 2 κωδικά ονόματα φύλλων
*Όπου Range("Pass") κελί ονομασμένο ως pass

rania1984 11-09-14 17:57

Έχω γράψει με περισσότερες λεπτομέρειες τι χρειάζομαι μέσα σε νέο excel. Ευχαριστώ.


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

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


Search Engine Optimization by vBSEO 3.3.2