TOP

VBA-Lezione 11.2. Eventi del foglio di lavoro (Worksheet Eventi)

Nella lezione precedente abbiamo considerato gli eventi legati all'intero libro. Adesso ci concentreremo sugli eventi legati ad un singolo foglio.


Worksheet_SelectionChange (Apertura della cartella di lavoro)

Per eseguire istruzioni basate su eventi per un singolo foglio di lavoro, seleziona il foglio di lavoro nell'editor, quindi Worksheet:

L'evento SelectionChange verrà aggiunto per impostazione predefinita. Questo evento viene generato ogni volta che il contenuto dell'intervallo cambia:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Ad esempio, il codice seguente aggiunge colori di riempimento a una o più celle selezionate e rimuove automaticamente il colore di riempimento dall'intervallo selezionato in precedenza quando tale intervallo cambia:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Static previous_selection As String

     If previous_selection <> "" Then
         'Rimozione del colore di sfondo dalla selezione precedente:
         Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
     End If

     'Aggiunta del colore di sfondo alla selezione corrente:
     Target.Interior.Color = RGB(181, 244, 0)

     'Salvataggio dell'indirizzo della selezione corrente:
     previous_selection = Target.Address
End Sub

Worksheet_Activate (evento di attivazione del foglio)

Questo evento si verifica quando viene attivato un foglio di lavoro:

Private Sub Worksheet_Activate()

End Sub

Worksheet_Deactivate (evento di disattivazione del foglio)

Questo evento si verifica quando viene attivato un altro foglio di lavoro:

Private Sub Worksheet_Deactivate()

End Sub

Worksheet_BeforeDoubleClick (evento doppio clic su una cella)

Questo evento si verifica quando si fa doppio clic su una cella del foglio di lavoro:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Worksheet_BeforeRightClick (Evento prima del clic con il tasto destro)

Questo evento si verifica prima del clic con il tasto destro del mouse sul foglio di lavoro:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Worksheet_Calculate (evento di calcolo del foglio di lavoro)

Questo evento si verifica ogni volta che i dati in un foglio di lavoro vengono calcolati o ricalcolati:

Private Sub Worksheet_Calculate()

End Sub

Worksheet_Change (evento di modifica del contenuto della cella)

Questo evento si verifica ogni volta che cambia il contenuto delle celle sul foglio specificato:

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Worksheet_FollowHyperlink (evento clic sul collegamento)

Questo evento si verifica quando viene cliccato un collegamento (ipertesto):

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

End Sub

Disattiva temporaneamente tutti gli eventi

Per eseguire il codice senza eventi, inseriscilo tra due righe di codice in questo modo:

 Application.EnableEvents = False '=> disabilita gli eventi
 'Alcune istruzioni...
 Application.EnableEvents = True '=> riattiva gli eventi