Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 19-12-15, 09:00
Το avatar του χρήστη Spirosgr
Spirosgr Ο χρήστης 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, δεν είναι απαραίτητο, να είναι το πρώτο φύλλο, του βιβλίου...
Απάντηση με παράθεση