Le cartelle di lavoro di Excel possono contenere intervalli
di dati esterni i cui dati vengono recuperati dalle origini dati seguenti:
Servizi OLAP Microsoft SQL Server (provider
OLAP)
Microsoft Access
dBASE
Microsoft FoxPro
Microsoft Excel
Oracle
Paradox
SQL Server
Database di file di testo
Provider di terze parti
È anche possibile utilizzare driver ODBC o driver di origini
dati di altri produttori per ottenere informazioni da origini dati non elencate
in questo articolo, compresi altri tipi di database OLAP. È possibile
utilizzare l'origine dati esterna in un intervallo di dati o in una tabella di
query di un foglio di lavoro o in una tabella pivot.
Potrebbe essere
utile determinare se un foglio di lavoro ricevuto da un altro utente contiene
collegamenti a origini dati esterni, in modo da decidere se considerare
affidabili o meno le origini e se i dati dovranno essere aggiornati
regolarmente o all'apertura della cartella di lavoro. È anche possibile
eliminare i collegamenti ai dati esterni e mantenere i valori
correnti.
In questo articolo sono illustrati i seguenti argomenti:
Generazione di un elenco di tutte le origini dati esterne
in un'intera cartella di lavoro.
Selezione di tutti gli intervalli di dati esterni in un
unico foglio di lavoro.
Modalità per determinare se un intervallo di dati esterni
in una cartella di lavoro viene aggiornato automaticamente.
Utilizzo della finestra di dialogo Modifica
collegamenti.
Microsoft fornisce esempi di programmazione a scopo puramente
illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che
implicita, ivi incluse, senza limitazioni, le garanzie implicite di
commerciabilità o idoneità per uno scopo particolare. In questo articolo si
presume che l'utente conosca il linguaggio di programmazione in questione e gli
strumenti utilizzati per creare ed eseguire il debug delle procedure. Gli
esperti Microsoft sono autorizzati a fornire spiegazioni in merito alla
funzionalità di una particolare procedura, ma in nessun caso a modificare
questi esempi per fornire funzionalità aggiuntive o a creare procedure atte a
soddisfare specifiche esigenze.
Generazione di un elenco di tutte le origini dati esterne in un'intera cartella di lavoro
Per elencare tutti gli intervalli di dati esterni in una cartella
di lavoro di Microsoft Excel:
Avviare Excel e aprire la cartella di lavoro in cui si
desidera cercare origini dati esterne.
Scegliere Macro dal menu
Strumenti, quindi fare clic su Visual Basic
Editor.
In Visual Basic Editor scegliere Modulo
dal menu Inserisci.
Nella finestra del modulo digitare il seguente codice:
Sub ListWebQueryPivotTableLinks()
Dim wbA As Workbook, wsN As Worksheet, ws As Worksheet
Dim pt As PivotTable, qt As QueryTable, R As Long, i As Long
Dim vLnkSrc As Variant
Const PROGCREATE As String = "This external " & _
"data range was created " & _
"programmatically and cannot be edited"
On Error GoTo errHandler
Set wbA = ActiveWorkbook
Set wsN = Workbooks.Add(xlWorksheet).Worksheets(1)
wsN.Name = wbA.Name
wsN.Range("A1:E1").Value = Array("Name", "Location", _
"Type", "Connection", "CommandText")
wsN.Range("A1:E1").Font.Bold = True
R = 1
For Each ws In wbA.Worksheets
For Each pt In ws.PivotTables
R = R + 1
With pt.PivotCache
wsN.Cells(R, 1).Value = pt.Name
wsN.Cells(R, 2).Value = ws.Name & "!" & _
pt.TableRange2.Address(False, False)
Select Case .SourceType
Case xlConsolidation
R = R - 1
For i = 1 To UBound(.SourceData)
R = R + 1
wsN.Cells(R, 1).Value = pt.Name
wsN.Cells(R, 2).Value = ws.Name & "!" & _
pt.TableRange2.Address(False, False)
wsN.Cells(R, 3).Value = _
"PivotTable - Consolidation Range"
wsN.Cells(R, 4).Value = "'" & _
.SourceData(i, 1)
wsN.Cells(R, 5).Value = "n/a"
Next
Case xlDatabase
wsN.Cells(R, 3).Value = "PivotTable - Excel List"
wsN.Cells(R, 4).Value = "'" & .SourceData
wsN.Cells(R, 5).Value = "n/a"
Case xlExternal
If .OLAP Then
wsN.Cells(R, 3).Value = "PivotTable - OLAP"
wsN.Cells(R, 4).Value = "'" & .Connection
wsN.Cells(R, 5).Value = .CommandText
ElseIf .QueryType = xlADORecordset Then
wsN.Cells(R, 3).Value = _
"PivotTable - ADO Recordset"
wsN.Cells(R, 4).Value = PROGCREATE
wsN.Cells(R, 5).Value = "'" & .Recordset.Source
Else
wsN.Cells(R, 3).Value = _
"PivotTable - External Data"
wsN.Cells(R, 4).Value = "'" & .Connection
wsN.Cells(R, 5).Value = .CommandText
End If
Case xlScenario
wsN.Cells(R, 3).Value = "PivotTable - Scenario"
wsN.Cells(R, 4).Value = "Based upon a Scenario " & _
"in this workbook"
wsN.Cells(R, 5).Value = "n/a"
End Select
End With
Next
For Each qt In ws.QueryTables
R = R + 1
wsN.Cells(R, 1).Value = qt.Name
wsN.Cells(R, 2).Value = ws.Name & "!" & _
qt.ResultRange.Address(False, False)
Select Case qt.QueryType
Case xlTextImport
wsN.Cells(R, 3).Value = "Text Import"
wsN.Cells(R, 4).Value = "'" & qt.Connection
wsN.Cells(R, 5).Value = "n/a"
Case xlOLEDBQuery
wsN.Cells(R, 3).Value = "Query Table - OLEDB Query"
wsN.Cells(R, 4).Value = "'" & qt.Connection
wsN.Cells(R, 5).Value = "'" & qt.CommandText
Case xlWebQuery
wsN.Cells(R, 3).Value = "Web Query Table"
wsN.Cells(R, 4).Value = "'" & qt.Connection
wsN.Cells(R, 5).Value = "n/a"
Case xlADORecordset
wsN.Cells(R, 3).Value = "Query Table - ADO Recordset"
wsN.Cells(R, 4).Value = PROGCREATE
wsN.Cells(R, 5).Value = "'" & qt.Recordset.Source
Case xlDAORecordset
wsN.Cells(R, 3).Value = "Query Table - DAO Recordset"
On Error Resume Next
wsN.Cells(R, 4).Value = "'" & qt.Recordset.Parent.Name
If Err.Number <> 0 Then
wsN.Cells(R, 4).Value = PROGCREATE
Err.Clear
End If
wsN.Cells(R, 5).Value = "'" & qt.Recordset.Name
If Err.Number <> 0 Then
wsN.Cells(R, 5).Value = PROGCREATE
Err.Clear
End If
On Error GoTo errHandler
Case xlODBCQuery
wsN.Cells(R, 3).Value = "Query Table"
wsN.Cells(R, 4).Value = "'" & qt.Connection
wsN.Cells(R, 5).Value = qt.CommandText
End Select
Next
Next
vLnkSrc = wbA.LinkSources
If Not IsEmpty(vLnkSrc) Then
For i = 1 To UBound(vLnkSrc)
R = R + 1
wsN.Cells(R, 1).Value = "n/a"
wsN.Cells(R, 2).Value = "n/a"
wsN.Cells(R, 3).Value = "Link Source (Edit | Links)"
wsN.Cells(R, 4).Value = vLnkSrc(i)
Next
End If
wsN.Cells.WrapText = False
wsN.Columns.AutoFit
wsN.UsedRange.AutoFilter
Exit Sub
errHandler:
MsgBox "An error has occurred." & vbCr & Err.Number & _
vbCr & Err.Description
Resume Next
End Sub
Scegliere Chiudi e torna a Microsoft Excel
dal menu File.
Scegliere Macro dal menu
Strumenti, quindi Macro.
Nell'elenco delle macro fare clic su
ListWebQueryPivotTableLinks, quindi scegliere
Esegui.
Tutte le origini dati esterne, compresi i
dettagli relativi all'origine, al percorso, al tipo e alla connessione, saranno
elencate in una nuova cartella di lavoro.
Selezione di tutti gli intervalli di dati esterni in un unico foglio di lavoro
Per selezionare tutti gli intervalli di dati esterni in un foglio
di lavoro di Microsoft Excel:
Avviare Excel e aprire la cartella di lavoro contenente gli
intervalli di dati esterni che si desidera selezionare.
Fare clic
sulla scheda del foglio che si intende controllare.
Scegliere Macro dal menu
Strumenti, quindi fare clic su Visual Basic
Editor.
In Visual Basic Editor scegliere Modulo
dal menu Inserisci.
Nella finestra del modulo digitare il seguente codice:
'This Sub procedure selects all cells in the worksheet that are part of
'external data ranges
Sub SelectAllQueryTables()
FirstCell = 1
For Each xQuery In ActiveSheet.QueryTables
If FirstCell = 1 Then
Set xRange = xQuery.ResultRange
FirstCell = 0
Else
Set xRange = Application.Union(xRange, xQuery.ResultRange)
End If
Next xQuery
xRange.Select
End Sub
Scegliere Chiudi e torna a Microsoft Excel
dal menu File.
Scegliere Macro dal menu
Strumenti, quindi Macro.
Nell'elenco delle macro fare clic su
SelectAllQueryTables, quindi scegliere
Esegui.
Tutti gli intervalli di dati esterni
verranno selezionati e sarà possibile spostarsi da una cella all'altra della
selezione premendo TAB. Selezionare un foglio di lavoro differente e ripetere i
passaggi 6 e 7 per selezionare gli intervalli di dati esterni in esso
contenuti.
Modalità per determinare se un intervallo di dati esterni in una cartella di lavoro viene aggiornato automaticamente
Per determinare se i dati di un intervallo di dati esterni
vengono recuperati automaticamente:
Selezionare tutti gli intervalli di dati esterni contenuti
nel foglio di lavoro utilizzando la macro SelectAllQueryTables.
Fare clic con il pulsante destro del mouse in una cella di
un intervallo di dati esterni selezionato e scegliere Proprietà
intervallo dati.
Nella finestra di dialogo Proprietà intervallo dati
esterno verificare le caselle di controllo Aggiorna ogni n minuti e Aggiorna dati all'apertura del
file.
Se una delle caselle di controllo è selezionata, i
dati verranno aggiornati automaticamente in base all'intervallo impostato o
all'apertura del file. Per impedire che i dati vengano aggiornati
automaticamente, deselezionare le caselle di controllo Aggiorna ogni
n minuti e Aggiorna dati
all'apertura del file.
Fare clic con il pulsante destro del mouse in una cella
dello stesso intervallo di dati esterni selezionato e scegliere
Parametri, se disponibile.
Fare clic su ciascun elemento a sinistra della finestra di
dialogo.
Se la casella di controllo Aggiorna automaticamente
se cambia il valore della cella è selezionata, i dati dell'intervallo
di dati esterni potranno essere recuperati automaticamente. Per impedirlo,
deselezionare la casella di controllo.
Ripetere i passaggi da 2 a 5 per ogni intervallo di dati
esterni contenuto nella cartella di lavoro.
Selezione di tutte le tabelle pivot di un foglio di lavoro
Per selezionare tutte le tabelle pivot in un foglio di lavoro di
Microsoft Excel:
Avviare Excel e aprire la cartella di lavoro contenente le
tabelle pivot che si desidera selezionare. Fare clic sulla scheda del foglio
che si intende controllare.
Scegliere Macro dal menu
Strumenti, quindi fare clic su Visual Basic
Editor.
In Visual Basic Editor scegliere Modulo
dal menu Inserisci.
Nella finestra del modulo digitare il seguente codice:
'This Sub procedure selects all cells in the worksheet that are part of
'PivotTable reports
Sub SelectAllPivotTables()
FirstCell = 1
For Each xQuery In ActiveSheet.PivotTables
If FirstCell = 1 Then
Set xRange = xQuery. TableRange2
FirstCell = 0
Else
Set xRange = Application.Union(xRange, xQuery.TableRange2)
End If
Next xQuery
xRange.Select
End Sub
Scegliere Chiudi e torna a Microsoft Excel
dal menu File.
Scegliere Macro dal menu
Strumenti, quindi Macro.
Nell'elenco delle macro fare clic su
SelectAllPivotTables, quindi scegliere
Esegui.
Tutte le tabelle pivot del foglio di lavoro
saranno selezionate. Selezionare un foglio di lavoro differente e ripetere i
passaggi 6 e 7 per selezionare le tabelle pivot in esso contenute.
Modalità per determinare se un rapporto di tabella pivot in una cartella di lavoro viene aggiornato automaticamente
Per determinare se i dati di una tabella pivot vengono recuperati
automaticamente:
Selezionare tutti gli intervalli di tabella pivot contenuti
nel foglio di lavoro utilizzando la macro SelectAllPivotTables.
Fare clic con il pulsante destro del mouse in una cella di
una tabella pivot e scegliere Opzioni tabella.
Nella finestra di dialogo Opzioni tabella
pivot verificare le caselle di controllo Aggiorna ogni
n minuti e Aggiorna
all'apertura.
Se una delle caselle di controllo è
selezionata, i dati verranno aggiornati automaticamente in base all'intervallo
impostato o all'apertura del file. Per impedire che i dati vengano aggiornati
automaticamente, deselezionare le caselle di controllo Aggiorna ogni
n minuti e Aggiorna
all'apertura.
Ripetere i passaggi 2 e 3 per ogni tabella pivot della
cartella di lavoro.
Utilizzo della finestra di dialogo "Modifica collegamenti"
Se nelle celle di una cartella di lavoro sono contenute formule
che fanno riferimento a cartelle di lavoro di Excel esterne, è possibile
visualizzare tali collegamenti e determinare il modo in cui vengono aggiornati
utilizzando la finestra di dialogo Modifica collegamenti. Per
utilizzare questa finestra di dialogo:
Scegliere Collegamenti dal menu
Modifica per visualizzare la finestra di dialogo
Modifica collegamenti.
Nella finestra di dialogo Modifica
collegamenti è visualizzato un elenco di collegamenti a cartelle di
lavoro esterne.
Per aggiornare tutti i dati manualmente, fare clic su
Aggiorna valori.
Per modificare l'origine di un collegamento, selezionare
innanzitutto il collegamento da modificare, quindi fare clic su Cambia
origine.
Selezionare una nuova origine e scegliere
OK.
Per aprire un'origine, selezionare innanzitutto il
collegamento che si desidera aprire, quindi fare clic su Apri
origine.
Per interrompere il collegamento all'origine dati esterna,
fare clic su Interrompi collegamento.
In seguito
all'esecuzione di questo comando, i dati correnti delle celle vengono
conservati, ma vengono rimossi i riferimenti ai dati esterni.
Per verificare lo stato e la disponibilità dei
collegamenti, fare clic su Verifica stato.
Per ulteriori
informazioni sui dati esterni in cartelle di lavoro di Excel, fare clic sul
numero dell'articolo della Knowledge Base riportato di seguito:
223789
(http://support.microsoft.com/kb/223789/
)
Riduzione della quantità di metadati nelle cartelle di lavoro di Microsoft Excel
Per ulteriori informazioni su come
impedire l'aggiornamento automatico dei dati in Excel, fare clic sul numero
dell'articolo della Knowledge Base riportato di seguito:
248204
(http://support.microsoft.com/kb/248204/
)
Richiesta di attivazione dell'aggiornamento automatico all'apertura di una cartella di lavoro di Excel
Per ulteriori
informazioni sulla rimozione di collegamenti, fare clic sul numero
dell'articolo della Microsoft Knowledge Base riportato di seguito:
288853
(http://support.microsoft.com/kb/288853/
)
XL2002: Il nome definito non viene rimosso quando si interrompe un collegamento
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.