Come scoprire cartelle di lavoro dipendenti da quella aperta

Elisabetta si chiede se esista un modo per determinare se ci sono altre cartelle di lavoro che dipendono da quella che ha aperto. Sa come trovare i collegamenti precedenti alla cartella di lavoro che ha aperto ma non quelli dipendenti. Elisabetta ha un nuovo lavoro e non vuole rischiare di modificare una cartella di lavoro senza sapere su quali altri file potrebbe influire.

Se hai la cartella di lavoro A e la cartella di lavoro B e la cartella di lavoro B include un collegamento alla cartella di lavoro A, la cartella di lavoro B dipende dalla cartella di lavoro A e la cartella di lavoro A è un precedente della cartella di lavoro B.

Nella cartella di lavoro B puoi facilmente trovare i collegamenti utilizzati nella cartella di lavoro; sapresti che la cartella A è un precedente della cartella B. Come ha detto Elisabetta, lei sa come trovare queste informazioni.

Nella cartella di lavoro A non c’è modo di determinare che la cartella di lavoro B abbia un collegamento alla cartella di lavoro A e dipenda quindi dalla cartella di lavoro A. Pertanto, è possibile apportare modifiche alla cartella di lavoro A che possono, inavvertitamente, influenzare la cartella di lavoro B. Ad esempio, tu potresti modificare un intervallo denominato o rinominare un foglio di lavoro o eliminare informazioni che ritieni non siano più necessarie. La prossima volta che aprirai la cartella di lavoro B, avresti una brutta sorpresa perché le informazioni da cui dipendeva nella cartella di lavoro A non saranno più disponibili.

Alcune modifiche apportate nella cartella di lavoro A potrebbero non influire sulla cartella di lavoro B. Ad esempio, dovresti essere in grado di aggiungere fogli di lavoro, aggiungere intervalli denominati ed eventualmente inserire colonne o righe. In tutti questi casi Excel può adattarsi naturalmente alle modifiche senza influire sulla cartella di lavoro B. Il problema è che non saprai se c’è stato un effetto negativo finché non aprirai successivamente la cartella di lavoro B.

Un modo per aggirare il problema è aprire tutte le cartelle di lavoro a cui puoi pensare, contemporaneamente, e quindi utilizzare gli strumenti di controllo in Excel per verificare le dipendenze. Questo può funzionare bene se hai un numero molto limitato di cartelle di lavoro sul tuo sistema. Non funziona molto bene se hai molte cartelle di lavoro o se le cartelle di lavoro si trovano su una rete.

Se hai le cartelle di lavoro in una posizione prestabilita sul tuo sistema locale (tutte in un’unica cartella), potresti provare a utilizzare una macro per determinare le dipendenze. La seguente macro scorre tutte le cartelle di lavoro di Excel in una determinata directory e identificano le cartelle di lavoro collegate tramite formule alla cartella di lavoro attualmente aperta.

 

Sub ScopriCartelleDipendenti()
    Dim i As Integer
    Dim iFile As String
    Dim fLink As Variant
    Dim sLink As String
    Dim myFldr As String
    Dim curFile As String

    'Cambia la stringa qui per cercare
    'collegamenti a una diversa cartella di lavoro
    sLink = "[FileA.xlsm]"
    curFile = ThisWorkbook.Name
    
    'Cambia la stringa qui per cercare
    'in un'altra directory
    myFldr = "C:\Users\User\mySub\"

    'Cerca sia le estensioni xlsx che le estensioni xlsm
    iFile = Dir(myFldr & "*.xls?", vbNormal)
    i = 1
    'Scorre tutti i file nella directory
    Do While iFile <> ""
        If iFile <> curFile Then
            Workbooks.Open Filename:=myFldr & iFile
            Set fLink = Cells.Find(What:=sLink, _
              After:=ActiveCell, LookIn:=xlFormulas, _
              LookAt:=xlPart, SearchOrder:=xlByRows, _
              SearchDirection:=xlNext, MatchCase:= _
              False, SearchFormat:=False)
            If UCase(TypeName(fLink)) <> UCase("Nothing") Then
                Windows(curFile).Activate
                'Scrive i nomi dei file dipendenti
                'nella tua cartella di lavoro
                Worksheets(1).Range("D" & (i)).Value = _
                  ActiveWorkbook.Name
                i = i + 1
            End If
            Workbooks(iFile).Close False
        End If
        iFile = Dir
    Loop
End Sub

 

 

Questo approccio dovrebbe funzionare bene in situazioni semplici. In alcuni casi, tuttavia, una macro di questo tipo potrebbe fornire solo una soluzione parziale, poiché i collegamenti possono essere nascosti in numerosi posti: nei nomi di Excel, nelle caselle di testo, nei grafici e in altri oggetti. C’è sempre la possibilità che qualcosa possa sfuggire. Poiché le modifiche che stai apportando potrebbero influire su altre cartelle di lavoro che dipendono da quella che stai modificando, il consiglio è quello di eseguire un backup del file della cartella di lavoro prima di apportare modifiche.

 

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

Ti è stato utile?