Ciao a tutti,
ho un nuovo problema di automazione. Ho bisogno di importare dei dati, contenuti in un foglio di lavoro di un file Excel con attivazione macro (.xslm) in un altro foglio di lavoro (sempre con attivazione macro). Mi sono ispirato ad un codice scritto da
Mauro un paio d'anni fa, e l'ho riadattato come segue (il codice si trova in calce). Tuttavia, quando eseguo il codice, ottengo il seguente errore:
"-2147467259: External table is not in the expected format".
L'errore, in particolare, occorre nella parte di codice in cui si definisce la connessione "cn" (nel frammento di codice e' evidenziata in grassetto). Il codice utilizzato cosi' come Mauro l'aveva creato funziona, ma nel momento in cui modifico i dati
non funziona piu'. Quello che c'e da sapere e':
- Il file da cui estrarre i dati contiene macro e collegamenti, nonche' filtri dati.
- Purtroppo non posso cambiare niente nel file d'origine (pur sapendo che spesso i problemi sono causati dagli spazi nei nomi).
Qualcuno sa come aiutarmi?? Grazie in anticipo!
Public Sub Controlling()
On Error GoTo RigaErrore
Dim cn As Object
Dim rs As Object
Dim sh As Worksheet
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set sh = ThisWorkbook.Worksheets("Support")
Data = "Reporting - Timeseries_mont_PL"
With cn
.CursorLocation = 2
.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data " & _
"Source=C:\Chris - Liquidity Overview Report\controlling_master_26_gecko New1.xlsm;Extended Properties=" _
& """" & "Excel 8.0;HDR=Yes;" & """"
End With
With rs
.CursorLocation = 2
.Open "SELECT * FROM [Data$]", cn, 3
End With
With sh
.Range("A1").CopyFromRecordset rs
End With
RigaChiusura:
If rs.State = 1 Then
rs.Close
End If
If cn.State = 1 Then
cn.Close
End If
Set rs = Nothing
Set cn = Nothing
Set sh = Nothing
Exit Sub
RigaErrore:
MsgBox Err.Number & vbNewLine & Err.Description
Resume RigaChiusura
End Sub