Davide nota giustamente che Excel fornisce strumenti di controllo (Trova celle dipendenti e Trova celle precedenti) che rappresentano un modo molto utile per tenere traccia di ciò che accade nei fogli di lavoro di grandi dimensioni. Tuttavia, l’interfaccia mostra semplicemente le dipendenze di una piccola area e Davide non può copiare questo elenco di celle per analizzarlo e gestirlo. Quando utilizza Trova celle dipendenti su una cella importante in un foglio di lavoro di grandi dimensioni, possono comparire diverse centinaia di “frecce”. Davide si chiede se esista un modo relativamente semplice per ottenere queste informazioni in un formato più utilizzabile, come un foglio di lavoro vuoto o un’altra cartella di lavoro.
Ovviamente non c’è modo di farlo con i comandi nativi di Excel, ma puoi creare una macro che estrarrà le informazioni desiderate. La seguente macro elencherà le celle dipendenti per qualunque cella sia selezionata quando si esegue la macro:
Sub Elenca_dipendenti_e_precedenti()
Dim rArea As Range
Dim rCell As Range
Dim rDip As Range
Dim rPre
Dim lRow As Long
Dim sCellAddr As String
sCellAddr = ActiveCell.Address(False, False)
On Error Resume Next
Set rDip = ActiveCell.Dependents
Set rPre = ActiveCell.Precedents
If rDip Is Nothing And rPre Is Nothing Then
MsgBox sCellAddr & " non ha dipendenti e precedenti"
Exit Sub
End If
On Error GoTo 0
Worksheets.Add
lRow = 1
On Error Resume Next
Cells(lRow, 1).Value = "Celle dipendenti per " & sCellAddr
For Each rArea In rDip
For Each rCell In rArea
lRow = lRow + 1
Cells(lRow, 1) = rCell.Address(False, False)
Next
Next
lRow = 1
Cells(lRow, 2).Value = "Celle precedenti per " & sCellAddr
For Each rArea In rPre
For Each rCell In rArea
lRow = lRow + 1
Cells(lRow, 2) = rCell.Address(False, False)
Next
Next
Set rArea = Nothing
Set rCell = Nothing
Set rDip = Nothing
Set rPre = Nothing
End Sub
Quando la macro viene eseguita, controlla se sono presenti celle dipendenti o precedenti per la cella selezionata. In caso contrario, riceverai una notifica e la macro verrà chiusa. Se sono presenti celle dipendenti o celle precedenti, viene aggiunto un nuovo foglio di lavoro alla cartella di lavoro e tali celle vengono elencate nel foglio di lavoro.