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

Come proteggere le celle in base alla data in Excel?

Normalmente, possiamo proteggere il foglio di lavoro per impedire ad altri di modificare o modificare i valori delle celle, ma, a volte, è necessario proteggere le celle in base alla data. Ad esempio, voglio proteggere altre celle ma consentire solo la modifica dei valori delle celle della data odierna come mostrato nella seguente schermata, questo articolo parlerà di come proteggere le celle in base alla data.

protezione doc entro data 1

Proteggi tutte le righe tranne la riga della data odierna con il codice VBA

Proteggi tutte le righe che la data è passata con il codice VBA


freccia blu freccia destra Proteggi tutte le righe tranne la riga della data odierna con il codice VBA

Consenti solo la modifica della riga che corrisponde alla data odierna, il seguente codice può aiutarti, per favore fai come segue:

1. Fare clic con il pulsante destro del mouse sulla scheda del foglio in cui si desidera proteggere le celle in base alla data, quindi scegliere Visualizza codice dal menu contestuale, nel saltato fuori Microsoft Visual Basic, Applications Edition finestra, copia e incolla il seguente codice nel modulo vuoto:

Codice VBA: proteggi tutte le righe tranne la riga della data odierna:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20161025
    If Range("E" & Selection.Row).Value <> Date Then
        ActiveSheet.Protect Password:="111111"
        MsgBox "Only today's date row can be edited!", vbInformation, "Kutools for Excel"
    ElseIf Range("E" & Selection.Row).Value = Date Then
        ActiveSheet.Unprotect Password:="111111"
        ActiveSheet.EnableSelection = xlNoRestrictions
    End If
End Sub

protezione doc entro data 2

Note:: Nel codice sopra, la lettera E è l'intestazione della colonna in cui si trova la data, "111111"È la password per proteggere questo foglio. Puoi cambiarli secondo le tue necessità.

2. Quindi salva e chiudi questa finestra del codice.

(1.) Se fai clic su altre celle oltre la riga della data odierna, verrà visualizzata una finestra di messaggio per ricordarti che la cella non può essere modificata, vedi screenshot:

protezione doc entro data 3

(2.) Se fai clic e modifichi la riga uguale alla data odierna, verrà modificata correttamente, vedi screenshot:

protezione doc entro data 4


freccia blu freccia destra Proteggi tutte le righe che la data è passata con il codice VBA

Se è necessario proteggere tutte le righe in cui la data è trascorsa, consentire la modifica solo delle righe della data odierna e futura, applicare il seguente codice VBA:

1. Fare clic con il pulsante destro del mouse sulla scheda del foglio in cui si desidera proteggere le celle in base alla data, quindi scegliere Visualizza codice dal menu contestuale, nel saltato fuori Microsoft Visual Basic, Applications Edition finestra, copia e incolla il seguente codice nel modulo vuoto:

Codice VBA: la data di protezione di tutte le righe è passata:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updateby Extendoffice 20161025
  Dim xRow As Long
  xRow = 2
  ThisWorkbook.ActiveSheet.Unprotect Password:="111111"
  ThisWorkbook.ActiveSheet.Cells.Locked = False
  Do Until IsEmpty(Cells(xRow, 5))
    If Cells(xRow, 5) < Date Then
      Rows(xRow).Locked = True
    End If
    xRow = xRow + 1
  Loop
  ThisWorkbook.ActiveSheet.Protect Password:="111111"
End Sub

protezione doc entro data 5

Note:: Nel codice sopra, il numero 5 è il numero della colonna in cui si trova la data, "111111"È la password per proteggere questo foglio. Puoi cambiarli secondo le tue necessità.

3. Quindi salva e chiudi questa finestra del codice.

(1.) Se fai clic sulla data delle celle trascorsa, verrà visualizzata una finestra di messaggio per ricordarti che la cella non può essere modificata, vedi screenshot:

protezione doc entro data 6

(2.) Se fai clic sulla cella delle righe per provare a modificare i valori nella data odierna o nella data futura, verrà modificato correttamente, vedi screenshot:

protezione doc entro data 7


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-2021 e 365. Supporta tutte le lingue. Facile implementazione 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 ogni giorno centinaia di clic del mouse!
fondo officetab
Commenti (30)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Scappatoia: la password può essere vista da un'altra persona utilizzando l'opzione "Visualizza codice".
Questo commento è stato fatto dal moderatore sul sito
non funziona in quanto tutte le celle mostrano il messaggio ma sono modificabili
Questo commento è stato fatto dal moderatore sul sito
Salve, è possibile bloccare le colonne in base alla data direttamente sopra le colonne?
Questo commento è stato fatto dal moderatore sul sito
Private Sub worksheet_Change (ByVal Target As Range)

'Iscriviti a http://youtube.com/excel10tutorial

'Sostieni il canale donando http://patreon.com/excel10tutorial

Dim col come gamma

'Imposta qui il nome del foglio corretto:

With ThisWorkbook.Sheets("AGOSTO-22")

.Sproteggere "ABCDE"

Per ogni col In .UsedRange.Columns

col.EntireColumn.Locked = col.Range("A1").Valore <> Data

Il prossimo col

.Proteggi "ABCDE"

.EnableSelection = xlNoRestrictions

Fine Con

End Sub
Questo commento è stato fatto dal moderatore sul sito
salve, è possibile bloccare determinate celle a seconda della data che si trova direttamente sopra di esse in una colonna?
Questo commento è stato fatto dal moderatore sul sito
Ciao Lusi,
Puoi dare il tuo problema in modo più specifico? Oppure puoi allegare uno screenshot come problema.
.
Questo commento è stato fatto dal moderatore sul sito
Ciao skyyang

Sì, ecco uno screenshot. Spero questo sia di aiuto.
Questo commento è stato fatto dal moderatore sul sito
Eccolo.
Questo commento è stato fatto dal moderatore sul sito
Ciao, Lucis,
Intendi bloccare le colonne la cui data è passata e solo le colonne di oggi e dei giorni futuri possono essere modificate?
Questo commento è stato fatto dal moderatore sul sito
Corretta! Come potrei procedere?
Questo commento è stato fatto dal moderatore sul sito
Ciao, Luis,
Che ne dici della cella della data in A1? È inserito manualmente o inserito con una formula =now()? Se si tratta di una cella di formula, le colonne bloccate verranno modificate con le modifiche della data.
Attendo con impazienza la tua risposta!
Questo commento è stato fatto dal moderatore sul sito
Ciao Skyyang

sì, la cella A1 ha la formula =now().

grazie!
Questo commento è stato fatto dal moderatore sul sito
Ciao.....


Sto usando il codice per Proteggi tutte le righe tranne la riga della data odierna ........



Private Sub Worksheet_SelectionChange (ByVal Target As Range)
'Aggiorna entro Extendoffice 20161025
Se Intervallo("A" & Selezione.Riga).Valore <> Data Allora
Password di ActiveSheet.Protect:="111111"
MsgBox "È possibile modificare solo la riga della data di oggi!", vbInformation, "Ktools for Excel"
ElseIf Range("E" & Selection.Row).Value = Date Then
ActiveSheet.Unprotect Password:="111111"
ActiveSheet.EnableSelection = xlNoRestrictions
End If
End Sub


Dopo aver salvato e fatto clic sulla cella, ricevo il messaggio solo la riga della data di oggi può essere modificata .... ma se faccio doppio clic sulla cella posso modificare ... aiuto per favore
Questo commento è stato fatto dal moderatore sul sito
Funziona alla grande. ma come posso cambiarlo per sbloccare una colonna in base alle date nella riga 3?
Questo commento è stato fatto dal moderatore sul sito
Come qualcuno che è relativamente nuovo a VBA, ti dispiacerebbe spiegare perché xRow = 2 nella riga 4?



Grazie
Questo commento è stato fatto dal moderatore sul sito
perché nella riga n. 1 hai l'intestazione
Questo commento è stato fatto dal moderatore sul sito
Ciao,

durante l'esecuzione di questo codice ricevo un errore come mostrato nella figura
Inoltre sto allegando un'istantanea del mio excel in cui voglio apportare modifiche..

Puoi guidare nel mio codice dove dovrei apportare modifiche in base al mio file excel in modo che le celle che contengono solo la data odierna e futura possano essere modificate ???
Questo commento è stato fatto dal moderatore sul sito
Ciao, Karan,
Poiché nella tabella sono presenti celle unite, il codice precedente non può essere applicato correttamente nella tabella delle celle unite.
Se hai altre buone idee, commenta qui. Grazie!
Questo commento è stato fatto dal moderatore sul sito
Ciao, ho provato a fare lo stesso ma a proteggere tutte le colonne tranne la colonna della data odierna con il codice VBA sostituendo "Selection.Row" con "Selection.Columns" ed "E" con "5" (numero di riga in cui sono le date), ma Continuo a ricevere l'errore 1004!

Qualche aiuto per favore?

Grazie
Questo commento è stato fatto dal moderatore sul sito
Ciao, ho provato a fare lo stesso ma a proteggere tutte le colonne tranne la colonna della data odierna con il codice VBA sostituendo "Selection.Row" con "Selection.Columns" ed "E" con "5" (numero di riga in cui sono le date), ma Continuo a ricevere l'errore 1004!

Qualche aiuto per favore?

Grazie
Questo commento è stato fatto dal moderatore sul sito
Ciao,
Per applicare questo codice alle colonne di cui hai bisogno, utilizza il seguente codice VBA: (Nota: nel codice, 5 è il numero di riga contenente la data, modificalo in base alle tue esigenze.)

Private Sub Worksheet_SelectionChange (ByVal Target As Range)
Dim xRg come intervallo
Imposta xRg = Target.Worksheet.Cells(5, Target.Column)
Se xRg <> Data Allora
Password di ActiveSheet.Protect:="111111"
MsgBox "È possibile modificare solo la riga della data di oggi!", vbInformation, "Ktools for Excel"
ElseIf xRg.Value = Data Allora
ActiveSheet.Unprotect Password:="111111"
ActiveSheet.EnableSelection = xlNoRestrictions
End If
End Sub

Per favore, prova, spero che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Grazie! Scusa, non ho ricevuto la tua risposta fino ad ora, potrebbe essere un problema nella mia email.

Ha funzionato! Non posso dire grazie abbastanza! Lo apprezzo davvero!
Questo commento è stato fatto dal moderatore sul sito
Ciao,
Felice che possa aiutarti!
Questo commento è stato fatto dal moderatore sul sito
Ciao,

Sto cercando di espanderlo per proteggere le colonne che non includono questo mese o/e questa settimana in corso. Ho provato a sostituire "Data" con "mese" o "settimana", ma non ha funzionato.

Ho allegato un foglio di esempio per settimane in cui l'utente non può modificare o digitare colonne diverse da questa settimana.

Qualche consiglio in merito? o devo usare le date effettive per riflettere un giorno del mese?
Questo commento è stato fatto dal moderatore sul sito
Grazie per il tuo aiuto, grazie mille amico, è un grande aiuto. e risolto la mia tensione.
Essere sicuri
Saluti Rohit Khanna
Questo commento è stato fatto dal moderatore sul sito
Ciao, sto affrontando un problema, una volta che chiudo il file e lo riapro di nuovo nella stessa data, il codice non funziona. aiuto per favore, sono bloccato
Questo commento è stato fatto dal moderatore sul sito
Ciao, Rohit,
Per mantenere il codice, dovresti salvare la cartella di lavoro come formato cartella di lavoro con abilitazione macro di Excel, prova, grazie!
Questo commento è stato fatto dal moderatore sul sito
ciao l'ho fatto ma quando premo la cella il messaggio mostra che non può essere modificato ma quando premo la tastiera posso ancora scrivere nella cella
Questo commento è stato fatto dal moderatore sul sito
Ciao, vorrei proteggere i giorni futuri e consentire la modifica dei giorni attuali e passati. Come lo faccio?
Questo commento è stato fatto dal moderatore sul sito
Ciao, Miguel, per proteggere i giorni futuri, applica il codice seguente: Private Sub Worksheet_Change (ByVal Target As Excel.Range)
'Aggiorna entro Extendoffice
Dim xRiga quanto a lungo
xRiga = 2
ThisWorkbook.ActiveSheet.Unprotect Password:="111111"
ThisWorkbook.ActiveSheet.Cells.Locked = Falso
Fai fino a quando non è vuoto(Cells(xRow, 5))
Se Celle(xRiga, 5) > Data allora
Righe(xRiga). Bloccato = Vero
End If
xRiga = xRiga + 1
Ciclo continuo
Password ThisWorkbook.ActiveSheet.Protect:="111111"
End SubPer favore, prova, spero che possa aiutarti!
Non ci sono ancora commenti pubblicati qui
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL