TOP

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

YouLibreCalc for Excel logo

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