![]() |
Συγχώνευση κελιών 1 Συνημμένο(α) Έχω λεπτομέρειες μέσα στο αρχείο, αν μπορεί να βοηθήσει κάποιος. Ευχαριστώ. |
Καλημέρα Κατ' αρχήν κάνε το βιβλίο σου .xlsm και όχι .xlsx που είναι το δείγμα σου Το ζητούμενο έτσι που το θέλεις ΔΕΝ μπορεί να εκτελεστεί από ένα μόνο κουμπί (toggle button) Πρέπει να δημιουργήσουμε έναν κώδικα ο οποίος να ακολουθεί την εξής διαδικασία: 1 Να «ξεκλειδώσει» το φύλλο 2 Να συγχωνεύσει τα επιλεγμένα κελιά αν δεν είναι συγχωνευμένα (και αντίστροφα) 3 Να «κλειδώσει» το φύλλο Εδώ λοιπόν με βάση το ζητούμενο οι ενέργειες που θέλεις να κάνεις δεν μπορούν να εκτελεστούν από ένα (toggle) κουμπί για τον εξής λόγο. Αν οι ενέργειες είναι : επιλέγω κελιά > πιέζω κουμπί > ξεκλειδώνει > συγχωνεύει > κλειδώνει > γράφω (όλα καλά) Αντίθετα: επιλέγω κελιά > πιέζω κουμπί > ξεκλειδώνει > αποσυγχωνεύει > κλειδώνει > μορφοποιώ δεν θα μπορεί να γίνει λόγω κλειδώματος του φύλλου. Κώδικας: Sub AutoMerge()εφ' όσον μετά δεν θέλουμε να επεξεργαστούμε (με μορφοποίηση για παράδειγμα) τα αποσυγχωνευμένα κελιά Άλλως καταργούμε την τελευταία γραμμή Sheet1.Protect Password:="1234" Το φύλλο μένει «ξεκλείδωτο» και το επεξεργαζόμαστε. Φτιάξε ένα δεύτερο κουμπί με την καταργημένη γραμμή και σύνδεσε σε αυτό τον κώδικα: Κώδικας: Sub LockSheet()Σημείωση: Από την στιγμή που έχουμε κώδικα για την προστασία με εμφανές το Password σε οποιονδήποτε πάει πίσω (Alt + F11) στην VBA δεν ξέρω σε τι εξυπηρετεί το κλείδωμα πέραν της προστασίας πχ σε τύπους κλπ Αν πρέπει να κλειδωθεί το φύλλο από την πρόσβαση σε τρίτους θα πρέπει να «εξαφανιστεί» και η module Μια πρόχειρη αλλά σχετικά καλή λύση είναι: Όπου Password:="1234" να μπει Password:=Sheet2.Range("Pass").Value που σε οδηγεί σε ένα άλλο φύλλο το οποίο θα κάνεις από τις ιδιότητες φύλλου VeryHidden *Όπου Sheet1, 2 κωδικά ονόματα φύλλων *Όπου Range("Pass") κελί ονομασμένο ως pass |
Έχω γράψει με περισσότερες λεπτομέρειες τι χρειάζομαι μέσα σε νέο excel. Ευχαριστώ. |
| Η ώρα είναι 11:08. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.