Se in un foglio di lavoro di Excel vi sono celle che contengono collegamenti a celle presenti in un altro foglio di Excel tramite il comando Menù – Modifica – Collegamenti (in Excel XP/2003) o Bottone Office – Prepara – Modifica collegamenti a file (in Excel 2007) è possibile visualizzare quali sono i file relativi a questi collegamenti.

Però nel caso in cui sia necessario evidenziare solo le celle che in uno specifico foglio di Excel contengono collegamenti a celle presenti in un altro file di Excel potremmo ricorre ad una macro che possiamo inserire come spiegato di seguito

Aprire la finestra di VBA:

In Excel XP o 2003: Menù Strumenti – Macro – Visual Basic Editor

In Excel 2007: Bottone di Office – Pulsante Opzioni di Excel – Impostazioni generali – Opzione “Mostra scheda Sviluppo sulla barra multifunzione”
Quindi ritornando nella finestra di Excel verrà visualizzata anche la Scheda Sviluppo nella quale troviamo il pulsante Visual Basic

Nella finestra Visual Basic inserire un nuovo modulo (menù Inserisci – Modulo) e copiare il codice riportato sotto:

Public Sub CollView()
Const cWshName = “Foglio1”
Dim wb As Excel.Workbook
Dim wsh As Excel.Worksheet
Dim rng As Excel.Range
Dim vntItem As Variant
Dim strFormula As String
Dim strFilename As String
Dim rngOut As Excel.Range

Set wb = Application.ThisWorkbook
Set wsh = wb.Worksheets.Item(cWshName)
For Each vntItem In wb.LinkSources
Debug.Print vntItem
strFilename = GetFileName(vntItem)
If InStr(strFilename, Chr$(32)) Then
strFilename = “[” & strFilename & “]”
End If
For Each rng In wsh.Cells.SpecialCells(xlCellTypeFormulas)
strFormula = rng.Formula
Debug.Print strFormula
If InStr(strFormula, strFilename) Then
If rngOut Is Nothing Then
Set rngOut = rng
Else
Set rngOut = Application.Union(rngOut, rng)
End If
End If
Next
Next
If Not rngOut Is Nothing Then
rngOut.Select
End If

Set rngOut = Nothing
Set rng = Nothing
Set wsh = Nothing
Set wb = Nothing
End Sub

Private Function GetFileName(ByVal FullName) As String
Dim strSep As String
strSep = Application.PathSeparator
GetFileName = Mid$(FullName, InStrRev(FullName, strSep) + 1)
End Function

A questo punto basterà lanciare la macro CollView perchè risultino selezionate tutte le celle del Foglio1 che presentano collegamenti a celle di altri fogli di Excel. Nel caso in cui si debba lavorare in un altro foglio basterà cambiare il codice precedente mettendo al posto di Foglio1 nella seconda riga il nome del foglio di Excel in cui evidenziare le celle contenenti collegamenti esterni.

Technorati technorati tags: , , ,

Informatics, ski racer, loves Finland, Norway, mountains, squash, photography, Drones and RC Helicopter – Snapchat: andrea.perotti

Translate »