ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [VBA] Δεν δουλέυει κώδικας όταν ενεργοποιώ την προστασία του φύλλου.

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 16-07-18, 20:45
Όνομα: ΣΑΚΗΣ
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-02-2013
Μηνύματα: 318
Προεπιλογή Δεν δουλέυει κώδικας όταν ενεργοποιώ την προστασία του φύλλου.

Χρησιμοποιώ αυτό τον κώδικα "Columns("M:O").Hidden = False" για απόκρυψη κάποιων κελιών.
Όταν όμως βάζω προστασία φύλλου μου βγάζει μήνυμα "δεν είναι δυνατός ο ορισμός της ιδιότητας hidden από την κλάση range".
Απάντηση με παράθεση
  #2  
Παλιά 16-07-18, 22:16
Το 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
Προεπιλογή

Η προστασία του φύλλου, απαγορεύει στον κώδικα να εκτελεστεί.
Βάλε:
Sheet1.Unprotect
στην αρχή

....κώδικας

Sheet1.Protect
στο τέλος

όπου Sheet1, το κωδικό όνομα του φύλλου.
Απάντηση με παράθεση
  #3  
Παλιά 17-07-18, 07:51
Όνομα: ΣΑΚΗΣ
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-02-2013
Μηνύματα: 318
Προεπιλογή

Μου βγάζει μήνυμα "run-time error 424"
Απάντηση με παράθεση
  #4  
Παλιά 17-07-18, 10:33
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.737
Προεπιλογή

Καλημέρα

Σάκη θα πρότεινα να χρησιμοποιήσεις τον παρακάτω κώδικα:

Κώδικας:
Public Sub HiddenUnHidden()
    If ActiveSheet.ProtectContents Then
        ActiveSheet.Unprotect 'συμπληρώνεται και το password αν το κλείδωμα γίνεται με password
        Columns("M:O").Hidden = Not Columns("M:O").Hidden
        ActiveSheet.Protect   'συμπληρώνεται και το password αν το κλείδωμα γίνεται με password
    Else
        Columns("M:O").Hidden = Not Columns("M:O").Hidden
    End If
End Sub
Ο κώδικας εφαρμόζεται στο ενεργό φύλλο και κάνει τα εξής:

Αν είναι κλειδωμένο
1) Το ξεκλειδώνει για να μπορεί να το αλλάξει.
2) Κρύβει τις στήλες αν φαίνονται ή τις εμφανίζει αν δε φαίνονται.
3) Ξανακλειδώνει το φύλλο.

Αν είναι ξεκλείδωτο
Κρύβει τις στήλες αν φαίνονται ή τις εμφανίζει αν δε φαίνονται.
Απάντηση με παράθεση
  #5  
Παλιά 17-07-18, 11:04
Το 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
Προεπιλογή

Καλημέρα.
Κατ' αρχάς αναφαίρεις...
«...Χρησιμοποιώ αυτό τον κώδικα "Columns("M:O").Hidden = False"
για απόκρυψη κάποιων κελιών...»

Αυτό εμφανίζει τις στήλες Μ έως Ο και δεν κρύβει κελιά...

Το σφάλμα 424,προκαλείται από κώδικα που παραπέμπει, σε μια ιδιότητα ή μέθοδο,
αλλά δεν συνδέεται με το σωστό αντικείμενο ή δεν μπορεί να εντοπίσει το αντικείμενο.

Αυτό με απλά λόγια σημαίνει, ότι κάποια γραμμή χτυπάει, επειδή δεν βρίσκει πχ
μια περιοχή στην σωστή θέση ή δεν είναι σεταρισμένη σωστά.

Ακόμα, το πιο πιθανό είναι, να μην έκανες σωστά αυτό που υπέδειξα στο προηγούμενο post.

Επειδή δεν μπορώ να μαντεύω, τι κάνεις με τον κώδικα σου,
ούτε θέλω να υποδείξω έναν κώδικα, χωρίς να έχω εικόνα του έργου,
θα προτείνω τα εξής:

Πήγαινε πίσω στην Vba και δες το κωδικό όνομα του φύλλου που τρέχει ο κώδικας.
πχ Φύλλο1 (Οτιδήποτε) ή Sheet1 (Οτιδήποτε)
Πάρε αυτό το μπλε όνομα και γράψε
στην πρώτη γραμμή, στην αρχή του κώδικα, κάτω από τον τίτλο του πχ
Φύλλο1.Unprotect και
από κάτω στην άλλη γραμμή Φύλλο1.Protect

Άφησε την πρώτη γραμμή στην αρχή του κώδικα, κάτω από τον τίτλο του.
Βάλε την δεύτερη γραμμή στο τέλος του κώδικα, πριν από το End Sub.

Αν ενδιάμεσα στον κώδικα, υπάρχει κάποιος έλεγχος που οδηγεί σε Exit Sub,
τότε βάλε πριν από αυτό ( Exit Sub ) και πάλι το Φύλλο1.Protect

Τρέξε τον κώδικα βηματικά (F8) και δες αν θα χτυπήσει και σε ποιό σημείο.

Τσέκαρε το σφάλμα, και διόρθωσέ το αν μπορείς ή ανέβασέ το να το δω...

* Γραμμές όπως η Columns("M:O").Hidden = False, και άλλες ...
καλό είναι να δένουν με το φύλλο πχ
Φύλλο1.Columns("M:O").Hidden = False

**Το καλύτερο θα ήταν να ανέβαζες τον κώδικα, από την αρχή της συζήτησης...
Απάντηση με παράθεση
  #6  
Παλιά 17-07-18, 11:26
Όνομα: ΣΑΚΗΣ
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-02-2013
Μηνύματα: 318
Προεπιλογή

Σπύρο με τον κώδικα που προτείνεις δουλεύει μια χαρά...προφανώς κάτι λάθος έκανα.
Σε ευχαριστώ.
Απάντηση με παράθεση
  #7  
Παλιά 17-07-18, 11:28
Το 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
Προεπιλογή

Να' σαι καλά, καλημέρα.
Απάντηση με παράθεση
  #8  
Παλιά 17-07-18, 11:49
Όνομα: ΣΑΚΗΣ
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-02-2013
Μηνύματα: 318
Προεπιλογή

Σπύρο μάλλον δίνω λάθος τον κώδικα όταν θέλω να βάλω password και δεν δουλεύει...

"ActiveSheet.Unprotect pas123"
Απάντηση με παράθεση
  #9  
Παλιά 17-07-18, 12:14
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.737
Προεπιλογή

Καλησπέρα

Σάκη, επειδή η πρόταση του Σπύρου, δεν περιέχει την εντολή: ActiveSheet.Unprotect
υποθέτω ότι αναφέρεσαι στη δική μου πρόταση και αντί για "Γιώργος" γράφεις "Σπύρος".

Ο σωστός τρόπος να προσθέσεις το password στον κώδικα είναι:

ActiveSheet.Unprotect "pas123"

Αν δε βάλεις το password στον κώδικα πιαθανόν να εμφανιστεί πλαίσιο και να το ζητήσει.
Απάντηση με παράθεση
  #10  
Παλιά 17-07-18, 12:22
Όνομα: ΣΑΚΗΣ
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-02-2013
Μηνύματα: 318
Προεπιλογή

Ναι συγνώμη, έτσι είναι Γιώργο...δουλεύει μιά χαρά.
Ευχαριστώ
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Δε δουλεύει σωστά η Access κκκ Access - Ερωτήσεις / Απαντήσεις 6 12-07-18 13:06
Κλείσιμο Φόρμας (Φύλλου δεδομένων) όταν δεν υπάρχουνεγγραφές dimitrisp Access - Ερωτήσεις / Απαντήσεις 2 14-01-18 12:52
[ Συναρτήσεις ] Κώδικα που δουλεύει κατα τη θέληση του giorgos_ad Access - Ερωτήσεις / Απαντήσεις 1 28-04-16 20:24
[Μορφοποίηση] Προστασία φύλλου από διαγραφή Gogosbmx Excel - Ερωτήσεις / Απαντήσεις 1 12-06-14 19:54
[Γενικά] Προστασία φύλλου και υπερσυνδέσεις (hyperlinks). Θανάσης Excel - Ερωτήσεις / Απαντήσεις 8 05-12-10 13:21


Η ώρα είναι 07:30.