Posso usare una macro per proteggere una cella in un foglio di calcolo Excel con una password?


0

Ho un foglio di calcolo Excel creato come un orologio. Il dipendente apre il file dell'orologio per la settimana e inserisce la data di fine settimana nel punto designato. Da qui in avanti, per l'input viene utilizzato solo il mouse. Il dipendente seleziona la cella corretta per il giorno della settimana e l'azione di punzonatura, di andare a pranzo, di tornare da pranzo e di andare a casa. Dopo aver posizionato il cursore sulla cella corretta, fanno clic su un pulsante (un pulsante collegato a una macro) che riempie l'ora corretta per l'azione. Non riesco a capire come impedirgli di andare nella cella che vogliono e digitando in qualsiasi momento vogliono. Ho provato ad aggiungere la protezione della cella con una password come parte della macro del pulsante ma non sono riuscito a farlo funzionare. Qualcuno ha un modo per proteggere le celle in modo che il dipendente non possa modificare i tempi? O,


La mia osservazione: 1. Sembra che il file sia in modalità protetta e la Macro dietro consenta solo al mouse di spostarsi e fare clic sul pulsante. Ora quello che stai cercando è consentire all'utente di inserire i dati nelle celle e successivamente devono essere protetti.
Rajesh S,

Cont ... , Il primo bisogno è solo condividere la Macro che limita il movimento del puntatore della cella attorno al file, aiutandoci a capire il processo. E sì, è possibile per l'utente proteggere i dati dopo averli inseriti. ☺
Rajesh S,

Rajesh, grazie per la tua risposta. Per rispondere alla tua domanda sulla limitazione del movimento del puntatore all'interno del foglio, le celle a cui non voglio che l'utente vada sono protette e la protezione impedisce all'utente di selezionare celle bloccate. L'utente può selezionare solo le celle che voglio che usino. Una volta che sono entrati nel tempo in una cella corretta usando il pulsante per entrare, uscire o altro, non voglio che possano tornare in quella cella. Monouso, protetto dopo il primo utilizzo. Non voglio che l'utente protegga i dati, voglio che mantenga il valore ottenuto la prima volta.
Paul Y,

cont. dato che hai già lavorato con l'area protetta, quindi la prossima necessità è come limitare l'utente a modificare i nuovi dati. se ritieni di poterti suggerire, Macro ti aiuterà ad applicare la protezione sui dati inseriti. Basta confermare se ne hai bisogno attraverso i commenti. ☺
Rajesh S,

Rajesh, se mi puoi inviare la macro, sicuramente ci proverei. Grazie
Paul Y

Risposte:


0

I tuoi utenti hanno accesso a scrivere nel file Excel ...

Non penso che tu possa far valere tecnicamente questo in Excel; Penso che tu voglia un software alternativo. Ammiro la tua abilità con le macro di Excel.

Elaborare:

  • Se l'utente può modificare la cella, non è protetta dall'utente semplicemente modificando la cella da sola (digitando un valore).
  • Se l'utente non è in grado di modificare la cella, è protetta dall'utente semplicemente digitando un valore, ma non può nemmeno far sì che le informazioni corrette vengano scritte su di essa da una macro.

Ciò è distinto dalle celle di crittografia, che impedisce anche la lettura senza la password.

Penso che ci sia un sacco di software di time-card là fuori, e la maggior parte di essi può probabilmente esportare i dati raccolti in Excel. Vorrei espandere i miei orizzonti oltre i fogli di calcolo se fossi nella tua posizione.


0

Puoi impedire le modifiche alle celle da un gestore eventi VBA:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    With Target
        If If Not Intersect(Target, Range("A1:B10")) Is Nothing Then Application.Undo
    End With
    Application.EnableEvents = True
End Sub

Non so se l'impostazione del valore delle celle tramite una macro VBA provoca questo evento. So che non si attiva per i cambiamenti indotti dalle formule. Ma puoi facilmente definire una variabile globale per consentire l'impostazione delle modifiche prima di cambiare la cella e disinserirla in seguito.

Potresti anche provare a intercettare l' Worksheet_SelectionChangeevento, per impedire all'utente di posizionare il cursore all'interno della cella. Per le celle non consentite è possibile riposizionare il cursore su una cella predefinita (come A1) o scrivere un codice più complicato per ricordare l'ultima posizione del cursore consentita e riposizionarla.


hrrymc, grazie per la tua risposta. Stai parlando sopra la mia testa. Posso tagliarlo e incollarlo in una macro e provarlo dopo aver modificato l'intervallo in base alle mie esigenze?
Paul Y,

Probabilmente dovrebbe funzionare. Consiglio di studiare l'argomento: in realtà VBA non è molto complicato, tranne per una brutta sintassi. Dai un'occhiata ai tutorial di Excel , in particolare "Crea una macro" e "Eventi". Ci sono molti altri post disponibili su Internet, quindi è possibile cercare domande specifiche o, se non vengono trovate, tornare al nostro sito.
harrymc,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.