Note: The other languages of the website are Google-translated. Back to English

Come bloccare o proteggere le celle dopo l'immissione o l'input dei dati in Excel?

Supponendo di avere un foglio di lavoro e solo un certo intervallo di celle vuote richiede l'immissione dei dati e, dopo aver terminato l'inserimento dei dati, è necessario che le celle vengano bloccate automaticamente per impedire nuovamente le modifiche. Come puoi fare per ottenerlo? Questo articolo può aiutarti.

Blocca o proteggi le celle dopo l'immissione dei dati o l'inserimento con codice VBA


Blocca o proteggi le celle dopo l'immissione dei dati o l'inserimento con codice VBA

Ad esempio, il determinato intervallo di celle vuote è A1: F8. Si prega di fare quanto segue per bloccare queste celle dopo l'immissione dei dati in Excel.

1. Sblocca prima questo intervallo, seleziona le celle e fai clic con il pulsante destro del mouse, quindi scegli formato celle nel menu di scelta rapida e nel file formato celle finestra di dialogo, deselezionando il file Bloccato scatola sotto il protezione scheda e infine facendo clic su OK pulsante. Vedi screenshot:

2. Clic Revisione > Proteggi foglio. E specifica una password per proteggere questo foglio di lavoro.

3. Fare clic con il pulsante destro del mouse sulla scheda del foglio, selezionare Visualizza codice dal menu di scelta rapida. Quindi copia e incolla il codice VBA sottostante nella finestra del codice. Vedi screenshot:

Codice VBA: blocca o protegge le celle dopo l'immissione o l'input dei dati

Dim mRg As Range
Dim mStr As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
    mStr = mRg.Value
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xRg As Range
    On Error Resume Next
    Set xRg = Intersect(Range("A1:F8"), Target)
    If xRg Is Nothing Then Exit Sub
    Target.Worksheet.Unprotect Password:="123"
    If xRg.Value <> mStr Then xRg.Locked = True
    Target.Worksheet.Protect Password:="123" 
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
     mStr = mRg.Value
End If
End Sub

Note:: Nel codice, "A1: F8" è l'intervallo necessario per inserire i dati; e "123" è la password di questo foglio di lavoro protetto. Si prega di cambiarli come necessario.

4. Stampa altro + Q contemporaneamente i tasti per chiudere il file Microsoft Visual Basic, Applications Edition finestra.

Dopo aver terminato di inserire i dati nelle celle dell'intervallo A1: F8, verranno bloccati automaticamente. E riceverai una finestra di dialogo di prompt se provi a modificare qualsiasi contenuto di cella di questo intervallo. Vedi screenshot:


Articoli correlati:


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office / Excel 2007-2019 e 365. Supporta tutte le lingue. Facile distribuzione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce centinaia di clic del mouse ogni giorno!
fondo officetab
Commenti (74)
Rinomato 5 su 5 · Valutazioni 1
Questo commento è stato fatto dal moderatore sul sito
Ciao, ho un foglio di calcolo con l'intervallo A3:AN219, vorrei proteggere questo intervallo man mano che l'input è completo. Per favore aiutami su questo. Ho provato sopra il codice ma non funziona per me
Questo commento è stato fatto dal moderatore sul sito
Questo non funziona quando riapre il file excel per favore aiutaci
Questo commento è stato fatto dal moderatore sul sito
Prova invece questo codice: Private Sub Worksheet_Change(ByVal Target As Range) Dim MyRange As Range Set MyRange = Intersect(Range("A1:D100"), Target) If Not MyRange Is Nothing Then Sheets("Sheet1").Unprotect password: ="ciao" MyRange.Locked = True Sheets("Foglio1").Proteggi password:="ciao" End If End Sub E ricorda di cambiare i nomi/numeri di intervallo (A1:D100), password (ciao) e foglio (Foglio1) se non corrisponde a quanto sopra :)
Questo commento è stato fatto dal moderatore sul sito
Grazie per il codice. Per favore fatemi sapere come fare per bloccare automaticamente le celle (simili a quelle elencate da voi) SOLO DOPO aver salvato il file
Questo commento è stato fatto dal moderatore sul sito
Ciao signore, sto affrontando un problema con lo stesso codice durante l'utilizzo di questo codice con altri cobe in VBA. Per favore, suggeriscimi una soluzione Grazie e saluti Gourav
Questo commento è stato fatto dal moderatore sul sito
Caro Gourav,
Siamo spiacenti, non è possibile risolvere questo problema.
Questo commento è stato fatto dal moderatore sul sito
Ho provato il codice e sembrava funzionare in qualche modo. Tuttavia, mi consente di eliminare la data inserita nella cella ma mi interrompe solo quando provo a inserire qualcos'altro. C'è un modo per evitare che i dati vengano cancellati?
Questo commento è stato fatto dal moderatore sul sito
Cara Stacy,
Lo stesso problema non si presenta nel mio caso. Il codice impedisce agli utenti di inserire e cancellare i dati dall'intervallo specificato. Forniresti la tua versione di Office per ulteriori test?
Questo commento è stato fatto dal moderatore sul sito
Per chiunque sia inciampato qui dopo questo commento. Se devi sbloccare il foglio di lavoro OGNI VOLTA che riempi una cella, devi prima: - Sbloccare il foglio di lavoro - Evidenziare l'area del foglio di lavoro su cui si applica il codice - Fare clic con il tasto destro e andare su "formatta celle" - Vai al scheda all'estrema destra chiamata "Protezione" e DEseleziona la sezione "Bloccato" (anche se appare come un riempimento solido anziché un segno di spunta) Dopodiché sarai in grado di inserire i dati in più celle senza dover sbloccare ogni volta. Tieni presente che se devi rivisitare le celle bloccate per eliminare o modificare le informazioni potresti dover ripetere i passaggi precedenti. Spero questo sia di aiuto.
Questo commento è stato fatto dal moderatore sul sito
mi piace bloccare solo le celle modificate. una volta che inserisco dati nelle celle vuote, devo bloccare la cella modificata per essere bloccata automaticamente ma non le celle vuote.
Questo commento è stato fatto dal moderatore sul sito
Caro Subhash,
Dopo aver utilizzato il codice, solo le celle modificate vengono bloccate nell'intervallo specificato. E puoi ancora inserire i dati nelle celle vuote nell'intervallo specificato di cui hai bisogno. Dopo aver riempito la cella vuota, verrà bloccata automaticamente.
Questo commento è stato fatto dal moderatore sul sito
No, blocca l'intero intervallo in una volta dopo un input di dati in una cella nell'intervallo
Questo commento è stato fatto dal moderatore sul sito
Caro Pradip,
Quale versione di Office usi?
Questo commento è stato fatto dal moderatore sul sito
Grazie per la codifica, ma ho un problema a mettere 2 codifiche in 1 foglio, aiuto per favore.
Questo commento è stato fatto dal moderatore sul sito
Cara Fiera,
Siamo spiacenti, non è possibile risolvere questo problema.
Questo commento è stato fatto dal moderatore sul sito
Ciao,
Signore, voglio bloccare i dati di input una volta!
Come se stessi seguendo un cliente e scrivessi lo stato, quindi nessun altro dipendente può modificarlo o modificarlo!
Questo commento è stato fatto dal moderatore sul sito
Buon Giorno,
Il metodo in questo post può anche aiutarti a risolvere questo problema.
Questo commento è stato fatto dal moderatore sul sito
le celle non sono nemmeno modificabili ... cosa è andato storto non capisco aiuto per favore
Questo commento è stato fatto dal moderatore sul sito
Buon Giorno,
All'inizio, devi impostare le celle specificate su Sbloccato per la modifica, quindi proteggere il foglio di lavoro. E infine applica lo script VBA.
Questo commento è stato fatto dal moderatore sul sito
è necessario codificare?
Questo commento è stato fatto dal moderatore sul sito
Hi


Voglio che blocchi l'intervallo dopo essere entrato in una cella nell'intervallo, per favore, puoi consigliarmi come devo modificare questo per farlo grazie
Questo commento è stato fatto dal moderatore sul sito
Hi
modificando il codice c'è un modo per farlo bloccare tutte le celle nell'intervallo dopo che i dati sono stati inseriti in una cella all'interno di quell'intervallo? quindi possono inserire i dati solo in una cella all'interno dell'intervallo non multiplo.


grazie
Questo commento è stato fatto dal moderatore sul sito
Caro Jackie,
Il codice VBA seguente può aiutarti a risolvere il problema.

Private Sub Worksheet_Change (ByVal Target As Range)
Dim xRg come intervallo
Dim xSRg come intervallo
On Error Resume Next
Imposta xSRg = Intervallo("A1:F8")
Imposta xRg = Interseca(xSRg, Target)
Se xRg non è niente, esci da Sub
Target.Worksheet.Unprotect Password:="123"
xSRg.Locked = Vero
Target.Worksheet.Protect Password:="123"
End Sub
Questo commento è stato fatto dal moderatore sul sito
Ciao,
C'è un modo per bloccare solo le celle anziché l'intero foglio? Ad esempio, se un utente immette "Sì" in A2, A2 si bloccherà immediatamente per non consentire alcuna modifica. Mi piacerebbe comunque se altri potessero ancora modificare anche qualsiasi altra cella. Grazie!
Questo commento è stato fatto dal moderatore sul sito
Ciao Smith,
Il codice VBA seguente può aiutarti a risolvere il problema. Per favore, prova e grazie per il tuo commento.

Private Sub Worksheet_Change (ByVal Target As Range)
On Error Resume Next
Target.Worksheet.Unprotect Password:="123"
Target.Locked = Vero
Target.Worksheet.Protect Password:="123"
End Sub
Questo commento è stato fatto dal moderatore sul sito
Buongiorno,

Esiste un modo per impedire a un utente di fare clic con il pulsante destro del mouse su "visualizza codice" e di vedere la password dell'amministratore?
Questo commento è stato fatto dal moderatore sul sito
Non importa, ho capito.
Questo commento è stato fatto dal moderatore sul sito
Come? non ho capito...
Questo commento è stato fatto dal moderatore sul sito
ciao, ho bisogno di aiuto


in realtà sto facendo un elenco di lavoro per un folto gruppo di persone e questo foglio è accessibile a tutti in modo che possano inserire le loro richieste di giorni liberi/ ferie annuali ecc. tuttavia voglio limitare solo un numero di persone in ferie per ciascuna giorno (massimo 5 in ferie) e dopo che sono state digitate 5 richieste di ferie per la giornata, nessun altro organismo può più soddisfare le richieste per quella data particolare.


c'è qualche codice/funzione che calcolerà il numero di richieste specifiche al giorno quindi quando viene raggiunta la quota, le altre celle vengono bloccate per le richieste da non superare? Grazie in anticipo
Questo commento è stato fatto dal moderatore sul sito
Buona giornata,
Benvenuto per postare qualsiasi domanda nel nostro forum: https://www.extendoffice.com/forum.html.
Otterrai più supporti di Excel dai nostri fan professionisti o da altri fan di Excel.
Questo commento è stato fatto dal moderatore sul sito
Ciao, questo post è stato molto utile e funziona perfettamente. Tuttavia, i miei filtri smettono di funzionare quando le celle si bloccano. C'è un modo per aggirare questo? Grazie!
Questo commento è stato fatto dal moderatore sul sito
Ciao Kim,
Spiacente, non posso aiutare con questo. La funzione di filtro è disabilitata in un foglio di lavoro protetto per impostazione predefinita.
Questo commento è stato fatto dal moderatore sul sito
Grazie amico, questo mi ha salvato il lavoro: D
Questo commento è stato fatto dal moderatore sul sito
quando esco dal file attualmente funzionante e lo riapro, ho scoperto che la nuova cella non è bloccata dopo l'immissione dei dati, solo la cella di blocco precedente ha trovato il blocco. qualsiasi soluzione
Questo commento è stato fatto dal moderatore sul sito
Ciao Nazmul,
È necessario salvare la cartella di lavoro come cartella di lavoro con attivazione macro di Excel prima di chiuderla.
Non ci sono ancora commenti pubblicati qui
Carica Altre
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite