Ho un codice VBA per importare un file excel che ha un nome file che varia così come, in base all'anno viene archiviato in sotto cartelle. Essendo questa disposizione abbastanza complessa ho preferito dare la possibilità a chi utilizza il Database, di scegliere il file.
Il problema è che anche i nomi dei Foglio variano in base all'anno ma in comune hanno sia il range sia il numero foglio, ovvero il terzo.
Ho letto che tramite Index è possibile far riferimento al foglio in questione tralasciando la nomenclatura. Vi posto il codice che ad oggi funziona ma che fa riferimento ad un nome specifico. Potete aiutarmi a capire come editare il codice così che possa sempre importare il terzo foglio? Grazie!
- Codice: Seleziona tutto
Sub provaCarico()
'Importa il file Carico dal percorso di rete con scelta file
'On Error GoTo Esci
'cancello tutta la tabella Carico
DoCmd.RunSQL "DELETE * FROM Carico;"
Dim SelectedFile As String
Dim FilePicker As FileDialog
Dim SQLdelete As String
'apro il filedialog e scelgo il file di Carico
Set FilePicker = Application.FileDialog(msoFileDialogFilePicker)
FilePicker.AllowMultiSelect = False
FilePicker.Filters.Add "Excel", "*.xls*", 1
FilePicker.InitialFileName = "C:\Users\*****************\Desktop\CARICO TEST\"
FilePicker.Title = "Seleziona il file di Carico"
FilePicker.Show
If FilePicker.SelectedItems.Count <> 0 Then
SelectedFile = FilePicker.SelectedItems(1)
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Carico", SelectedFile, True, "CARICO 2018!A1:R50607"
'MsgBox ("Dati caricati")
End If
'Esci: Exit Sub
End Sub