Fermare l’eliminazione delle celle (Microsoft Excel)
Vilas sa di poter proteggere un foglio di lavoro in modo che gli utenti non possano eliminare le celle. Tuttavia, ha la necessità di impedire l’eliminazione di celle senza utilizzare la protezione del foglio di lavoro. (Vilas non sta parlando della cancellazione del contenuto delle celle, ma dell’effettiva cancellazione delle celle in modo che le celle circostanti debbano spostarsi a sinistra o spostarsi verso l’alto.) Si chiede se esiste un modo per impedire a un utente di eliminare celle, senza proteggere il foglio di lavoro.
Non esiste un modo diretto per farlo in Excel. Sarebbe bello se Excel fornisse un modo per creare un gestore di eventi che è stato chiamato ogni volta che una cella è stata eliminata, ma non lo fa. (L’evento Worksheet_Change viene apparentemente attivato ogni volta che il contenuto di una cella viene modificato, ma non quando una cella viene completamente eliminata.) Per questo motivo, l’utilizzo di una macro per proteggere le celle dall’eliminazione non è la strada da percorrere.
La migliore soluzione che siamo stati in grado di trovare consiste nello sfruttare una stranezza nel modo in cui Excel gestisce le formule di matrice. A titolo di esempio, supponiamo che tu abbia dati nell’intervallo A1: L37 e non desideri che nessuna cella all’interno di questo intervallo venga eliminata. Segui questi passaggi generali:
-
Seleziona l’intervallo di celle appena a destra del blocco che desideri proteggere. In questo caso, seleziona le celle M1: M37.
-
Digita = “” e premi Maiusc + Ctrl + Invio. Ora hai creato una formula di matrice non fare nulla che accetta l’intero intervallo di M1: M37.
-
Seleziona l’intervallo di celle appena sotto il blocco di celle che desideri proteggere. In questo caso, seleziona le celle A38: L38.
-
Digita = “” e premi Maiusc + Ctrl + Invio. Ora hai creato una formula di matrice non fare nulla che accetta l’intero intervallo di A38: L38.
A questo punto non è possibile eliminare nessuna cella all’interno del blocco di dati (A1: L37), né è possibile eliminare alcuna riga da 1 a 37 o qualsiasi colonna da A a L.
Ogni volta che si prova, Excel visualizza un messaggio che dice “Non è possibile modificare parte di un array”. L’unico modo per eliminare celle, righe o colonne all’interno del blocco di dati è eliminare prima le formule di matrice che sarebbero interessate. In altre parole, dovresti prima eliminare la colonna M o la riga 38.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (10255) si applica a Microsoft Excel 97, 2000, 2002 e 2003.
Puoi trovare una versione di questo suggerimento per l’interfaccia a barra multifunzione di Excel (Excel 2007 e versioni successive) qui: