ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [VBA] Κλείδωμα - Ξεκλείδωμα όλων των φύλλων ενός βιβλίου

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 18-12-15, 19:50
Όνομα: Αίας
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-10-2015
Μηνύματα: 8
Προεπιλογή Κλείδωμα - Ξεκλείδωμα όλων των φύλλων ενός βιβλίου

Καλησπέρα και συγχαρητήρια για τη βοήθεια που μας παρέχετε. Έχω περάσει αρκετές ώρες διαβάζοντας θέματά σας και λύσεις και ομολογώ ότι έχω βοηθηθεί πάρα πολύ δημιουργώντας ήδη αρκετά πράγματα στο excel που πριν τα έκανα αρκετά δύσκολα και μέσω "Ζιμπάμπουε" πολλές φορές.
Είναι το πρώτο ερώτημά μου στο forum και θα ήθελα την βοήθειά σας.
Έχω ένα βιβλίο με 35 - 40 φύλλα. Σε όλα τα φύλλα έχω κλειδωμένα κελιά με διάφορους τύπους και υπερσυνδέσεις. Όλα τα φύλλα τα έχω προστατευμένα (χωρίς κωδικό) για λόγους αποφυγής τυχαίων καταχωρήσεων. Όταν όμως θέλω να αλλάξω να προσθέσω ή να διορθώσω οτιδήποτε σε τύπους κλπ κλειδωμένα κελιά, πρέπει να ξεκλειδώνω ένα ένα φύλλο και μετά να ξανακλειδώνω.
Θα ήθελα λοιπόν ένα κώδικα VBA για να τον σετάρω με κουμπί στο αρχικό φύλλο που θα μου ξεκλειδώνει απ΄ ευθείας όλα τα φύλλα και με δεύτερο πάτημα (όταν έχω τελειώσει διορθώσεις) να ξανακλειδώνει όλα τα φύλλα σύμφωνα με τις επιλογές που έχω για προστασία. Ευχαριστώ και αναμένω
Απάντηση με παράθεση
  #2  
Παλιά 19-12-15, 09:00
Το 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.402
Προεπιλογή

Καλημέρα
Μια πρόταση, χωρίς κουμπιά είναι η εξής:
Υποθέτουμε, ότι έχουμε ένα βιβλίο, με πρώτο (βασικό) φύλλο το MainSheet.
Ακόμα, θεωρούμε ότι σε όλα τα υπόλοιπα φύλλα, έχει γίνει σωστά
το κλείδωμα κάποιων κελιών, με την γνωστή διαδικασία.
Το κλείδωμα είναι, χωρίς κωδικό και επιτρέπει μόνο την επιλογή, μη κλειδωμένων κελιών...

Στα συμβάντα βιβλίου, βάζουμε, τους δύο πιο κάτω κώδικες:
Κώδικας:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Dim WS As Worksheet
    If ActiveSheet.Name <> "MainSheet" Then
        ActiveSheet.Unprotect
        Select Case MsgBox("Η προστασία έχει καταργηθεί." & vbLf _
        & "Θέλετε να την επαναφέρετε;", vbYesNo, "Ερώτηση...")
        Case vbYes
            ActiveSheet.Protect
        Case vbNo
            Exit Sub
        End Select
    End If
End Sub
Κώδικας:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    Dim WS As Worksheet
    If ActiveSheet.Name <> "MainSheet" Then
        ActiveSheet.Protect
    End If
End Sub
Τι κάνει:
Κάθε φορά που θα «μπαίνουμε» σε ένα οποιοδήποτε φύλλο, πλήν του MainSheet,
μας ρωτάει αν θέλουμε να καταργήσουμε την προστασία...
Πατάμε το ανάλογο κουμπί Yes - No
Όταν «βγούμε» από το φύλλο, η προστασία επανέρχεται, αυτόματα...

Σημειώσεις:
1
Αλλάξτε το όνομα MainSheet, με ό,τι θέλετε...
2
Το MainSheet, δεν είναι απαραίτητο, να είναι το πρώτο φύλλο, του βιβλίου...
Απάντηση με παράθεση
  #3  
Παλιά 19-12-15, 11:09
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.737
Προεπιλογή

Καλημέρα

Μια πρόταση με κουμπί.

Λεπτομέρειες στο συνημμένο
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm LockUlockSheet.xlsm (22,0 KB, 60 εμφανίσεις)
Απάντηση με παράθεση
  #4  
Παλιά 19-12-15, 17:34
Όνομα: Αίας
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-10-2015
Μηνύματα: 8
Προεπιλογή

Σπύρο και Γιάννη σας ευχαριστώ πάρα πολύ για την άμεση ανταπόκρισή σας. Μακάρι όλοι μας να δείχνουμε την ίδια αλληλεγγύη σε ανθρώπους που ζητούν την βοήθειά μας σε κάθε πτυχή της ζωής μας. Είστε αξιέπαινοι και πάλι σας ευχαριστώ. Δοκίμασα και τα δύο και δουλεύουν άψογα!!!. Προτίμησα όμως τη λύση του Γιώργου. Αλλά και η λύση του Σπύρου μου έδωσε το έναυσμα για χρησιμοποίησή της με κάποια τροποποίηση σε άλλο αρχείο μου. "Με ένα σμπάρο δύο τρυγόνια".
Σας ευχαριστώ για το χρόνο σας και κυρίως για την διάθεσή σας για βοήθεια.
Απάντηση με παράθεση
  #5  
Παλιά 19-12-15, 18:12
Το 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.402
Προεπιλογή

Καλησπέρα
Κατ' αρχήν, ευχαριστούμε για τα καλά σου λόγια!
Ως υποσημείωση, για να βλέπουμε και λίγο τα πράγματα πιο σφαιρικά,
θα ήθελα σου πω, (ανεξάρτητα από την επιλογή σου)
ότι η λύση που πρότεινα, έχει το πλεονέκτημα, να εξασφαλίζει το κλείδωμα
του κάθε φύλλου, κατά την έξοδο, έτσι ώστε αν χρησιμοποιήσει το βιβλίο και άλλος χρήστης
να μην «μπει» σε ένα ξεκλείδωτο βιβλίο, αν για παράδειγμα ξεχάσεις να πατήσεις και πάλι
το κουμπί πριν την έξοδο...και αποθήκευση.
Αυτό ήταν και το κίνητρο, για την λύση που πρότεινα...και δεν πρότεινα κάτι με κουμπί...
Θα μπορούσε κανείς, αν πρέπει οπωσδήποτε να έχει κουμπί στον κώδικα, να βάλει το συμβάν
BeforeClose ή BeforeSave (ανάλογα το έργο και τις προτιμήσεις του)
να προστατεύει το βιβλίο ή τα φύλλα, στην αποθήκευση ή στο κλείσιμο του βιβλίου,
για να αποφύγει αυτά που είπαμε πιο πάνω...
Και πάλι, ευχαριστούμε για τα καλά σου λόγια!
Απάντηση με παράθεση
  #6  
Παλιά 19-12-15, 19:23
Όνομα: Αίας
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-10-2015
Μηνύματα: 8
Προεπιλογή

Σπύρο σε ευχαριστώ και πάλι.Για αυτό είπα "με ένα σμπάρο δύο τρυγόνια¨. Η δική σου λύση όπως έγραψα μου έδωσε το έναυσμα και τη χρησιμοποίησα ήδη σε άλλο αρχείο ακριβώς για τους λόγους που γράφεις (μπαινοβγαίνουμε πολλοί). Σε αυτό το έργο προτίμησα τη λύση του Γιώργου γιατι μπαίνω μόνο εγώ και ξεκλειδώνω τα φύλλα όταν θέλω να αλλάξω για διάφορους λόγους συναρτήσεις,τύπους κλπ μαζικά σε πολλά φύλλα.Και πάλι ευχαριστώ
Απάντηση με παράθεση
  #7  
Παλιά 19-12-15, 19:53
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.737
Προεπιλογή

Καλησπέρα

Αία, δες το συνημμένο.

1)Βελτίωσα λίγο τον κώδικα κλειδώματος των φύλλων.

2) Πρόσθεσα κώδικα στο συμβάν BeforeClose, ώστε το βιβλίο να αποθηκεύεται με προστατευμένα φύλλα.

Κατά την προσαρμογή του κώδικα στη γραμμή:

Worksheets("Sheet1").cmdLockUnlock.Caption = "UnLock"

της διαδικασίας BeforeClose, τα Sheet1 και cmdLockUnlock,

θα πρέπει να αλλάξουν με το όνομα του φύλλου και του κουμπιού αντίστοιχα.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm LockUlockSheetButton.xlsm (23,4 KB, 64 εμφανίσεις)
Απάντηση με παράθεση
  #8  
Παλιά 19-12-15, 20:12
Όνομα: Αίας
Έκδοση λογισμικού Office: Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-10-2015
Μηνύματα: 8
Προεπιλογή

Γιώργο σε ευχαριστώ......θα το εφαρμόσω...για ακόμη περισσότερη σιγουριά. Σπύρο και σε σένα οι ευχαριστίες μου.
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Γενικά] Κλείδωμα βιβλίου manolis Excel - Ερωτήσεις / Απαντήσεις 3 11-03-20 21:29
[Μορφοποίηση] Κλείδωμα κελιού με βάση το περιεχόμενο ενός άλλου. dimharos Excel - Ερωτήσεις / Απαντήσεις 1 28-05-16 06:06
[ Υποφόρμες ] Κώδικας για Ξεκλείδωμα Free_Ghost Access - Ερωτήσεις / Απαντήσεις 3 20-10-12 20:59
Ξεκλείδωμα αρχειου mdb manolis Access - Ερωτήσεις / Απαντήσεις 5 15-07-10 21:06
[Γενικά] Δημιουργία λίστας φύλλων ενός βιβλίου Billy Excel - Ερωτήσεις / Απαντήσεις 3 14-06-10 08:01


Η ώρα είναι 10:51.