Come elencare le celle dipendenti e precedenti in Excel

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.

 

Tags: , , , , , , , , , , , , , , , , ,

Ti è stato utile?