Come impedire il copia e incolla in Excel con il VBA 

 Febbraio 14, 2024

By  Damiano Causale

  • Home
  • Blog
  • Come impedire il copia e incolla in Excel con il VBA

In questo articolo ti mostrerò un metodo per impedire il copia e incolla in Excel utilizzando il linguaggio delle macro, il VBA, attraverso dei semplici passaggi.

Il codice VBA ti consentirà di disabilitare, oltre il copia e incolla, anche la funzione taglia ed il trascinamento attraverso l'utilizzo della maniglia di riempimento.

Passiamo subito alla pratica.

Disabilitare le funzioni copia e incolla in Excel con il VBA

Supponiamo di avere una cartella di lavoro con diversi fogli di lavoro come mostrato nella seguente immagine.

Impedire copia incolla Excel VBA

Il primo foglio contiene i dati.

Ora supponiamo di voler trasferire i dati dal primo foglio a quelli successivi ma non il contrario.

Ciò che faremo sarà quello di utilizzare il codice VBA Excel per impedire che i dati vengano tagliati, copiati e incollati nel primo foglio di lavoro.

Come disabilitare le funzioni taglia, copia e incolla verso un foglio specifico con il VBA

In questo esempio vediamo come disabilitare le funzioni taglia, copia e incolla con il VBA verso un foglio specifico. In pratica vogliamo impedire che i dati copiati da altri fogli di lavoro vengano incollati all'interno di in un foglio specifico.

Vediamo come procedere passo dopo passo.

Innanzitutto, premi contemporaneamente la combinazione di tasti ALT + F11 per aprire la finestra dell'Editor VBA.

A questo punto fai doppio clic sul foglio verso il quale vuoi impedire che i dati vengano copiati presente nel riquadro di sinistra denominato Progetto - VBAProject. Nell'esempio il Foglio1 (Dati).

Editor VBA Exccel

Seleziona Worksheet dal menu a tendina di sinistra.

Impedire copia incolla Excel VBA: evento Worksheet Selection Change

In automatico, verrà mostrata la scritta SelectionChange nel menu a tendina di destra.

Si tratta di un evento VBA. In altri termini, stiamo per associare un'azione ogni volta che si verifica l'evento "cambia selezione" ovvero ogni volta che viene selezionata una cella o un intervallo di celle all'interno di un foglio di lavoro di Excel.

Poiché non è l'evento di cui abbiano bisogno, seleziona Activate dal menu a tendina di destra.

Il nuovo evento è legato all'attivazione del foglio ovvero ogni volta che verrà selezionato il foglio specifico (nell'esempio chiamato Dati).

Impedire copia incolla Excel VBA: evento Worksheet Activate

Ora, cancella l'altro evento (Worksheet SelectionChange) e digita il seguente codice:

Disabilitare copia incolla Excel VBA verso un foglio specifico

Questo è il codice VBA che ti consentirà di disabilitare le funzioni taglia, copia e incolla nel primo foglio di lavoro, quello chiamato Dati, nel nostro esempio.

Ora se provi a copiare o tagliare i dati presenti in questo foglio e incollarli negli altri fogli (2022, 2023, 2024), potrai farlo tranquillamente. Tuttavia, non potrai fare il contrario!

I dati presente negli altri fogli di lavoro non potranno essere incollati nel foglio Dati.

Copia e incolla disabilitato

Per verificare, prova ad eseguire l'operazione di copia e incolla e vedrai che stavolta non sarà possibile eseguirla.

Come disabilitare le funzioni taglia, copia e incolla all'interno di un foglio specifico con il VBA

Qualora volessi disabilitare le funzioni taglia, copia e incolla con il VBA all'interno di un foglio di lavoro specifico puoi utilizzare l'evento SelectionChange selezionandolo dal menu a tendina di destra.

Ciò impedisce le azioni taglia, copia e incolla all'interno di un determinato foglio di lavoro (il foglio Dati nel nostro esempio).

Disabilitare copia incolla Excel VBA all'interno di un foglio di lavoro

In questo caso però potrebbe esserci un "punto debole" pertanto mettiamo alla prova il nostro file.

Proviamo ad effettuare l'operazione di copia e incolla attraverso il trascinamento il cosiddetto Drag and Drop.

Come potrai ben notare, al momento, nulla ci impedisce di farlo.

Per colmare questa "lacuna", aggiungiamo pertanto il seguente codice VBA all'evento creato in precedenza.

Disabilitare copia incolla Excel VBA all'interno di un foglio specifico

A questo punto anche la funzione di trascinamento sarà disabilitata. Infatti, noterai che non comparirà più la freccia nera quando posizionerai il puntatore sul maniglia di riempimento.

Pertanto, grazie al codice VBA, ora tutte le funzioni taglia, copia e incolla sono contemporaneamente disabilitate nel primo foglio di lavoro di Excel.

A questo sembra funzionare tutto perfettamente ma è presente un piccolo inconveniente: l'utilizzo della maniglia di riempimento viene disabilitata in tutti i fogli di lavoro.

Per evitare questo inseriamo un nuovo evento: Deactivate. Al suo interno inseriamo il seguente codice:

Impedire copia incolla Excel VBA

In questo modo, il trascinamento verrà disabilitato ogni volta che selezionerai il foglio Dati. Mentre verrà abilitato nel momento in cui selezionerai gli altri fogli (2022, 2023, 2024).

Come disabilitare le funzioni taglia, copia e incolla tra fogli di lavoro con il VBA

Infine, vediamo un ulteriore esempio per disabilitare le funzioni taglia, copia e incolla tra fogli di lavoro.

In questo caso potrai fare il copia e incolla solo all’interno di ciascun singolo foglio ma NON tra fogli.

Per disabilitare le funzioni taglia, copia e incolla nella cartella di lavoro, ovvero per tutti i fogli contemporaneamente, puoi utilizzare il codice seguente e inserirlo su Questa_cartella_di_lavoro sempre presente nel riquadro Progetto - VBAProject a sinistra.

Disabilitare copia incolla Excel VBA tra fogli di lavoro

Seleziona la voce Workbook nel menu a tendina di sinistra e poi SheetActivate in quello di destra.

Prova a copiare alcuni dati e incollarli in uno dei qualsiasi fogli presenti nella tua cartella di lavoro di Excel.

Se hai eseguito correttamente questa operazione non potrà essere completata: puoi copiare ma non incollare!

Dai uno sguardo a questo video e scopri come disabilitare il copia e incolla in Excel, utilizzando il linguaggio delle macro, attraverso dei semplici passaggi.

Potrebbero interessarti i seguenti articoli:

Porta le tue competenze di Excel al livello successivo con il corso Excel macro e VBA!

Se desideri portare le tue competenze di Excel al livello successivo, scopri il potere delle Macro Excel per automatizzare le tue attività lavorative con il corso Excel Macro e VBA.

Damiano Causale


Mi chiamo Damiano Causale, istruttore Microsoft certificato, per lavoro aiuto aziende e privati nell'utilizzo di Excel.

Damiano Causale

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati con un asterisco (*).

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}