Buon pomeriggio a tutti, ho messo su il codice sottoriportato per aprire con VBA un file csv ma non ottengo lo stesso risultato di quando effettuo la stessa procedura nelle seguenti modalità, cioè me lo copia con caratteri stani, cosa non va?
Con questa modalità di acquisizione del file csv invece i dati vengopno copiati nel modo corretto senza la visualizzazione dei caratteri strani, tipo tilde, il quadratino che si sostituisce al simbolo valuta € ecc.
Dati ( Dati Esterni Testo)e la suaconversione guidataper aprirlo. Nel passaggio 3, seleziono la colonna di interesse e imposto l'opzione Testo:
Sub ApriCSV()
Dim fStr As String
With Application.FileDialog(msoFileDialogFilePicker)
.Show
If .SelectedItems.Count = 0 Then
MsgBox "Hai selezionato Annulla"
End
End If
'fStr is the file path and name of the file you selected.
fStr = .SelectedItems(1)
End With
Workbooks.Open Filename:="C:\Users\XXXXX\Desktop\PROVA\Foglio1.xlsx"
Sheets("Foglio1").Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & fStr _
, Destination:=Worksheets("Foglio1").Range("$A$1"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = ";"
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 _
, 1, 1)
.Refresh BackgroundQuery:=False
End With
MsgBox "File csv Importato con successo!", vbInformation
End Sub
Ciao Nicola.