+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 6 su 6

Creazione file Excel da file csv

  1. #1
    pierovb non è in linea Scolaretto
    Ho la necessità di trasformare, ogni inizio settimana, un file .csv in .xls e successivamente inserire i dati in una tabella di Access
    il tutto, ovviamente, da visual basic.

    ho reperito in rete il seguente codice
    
    Dim NashXl    As Object
    Dim location As String, num As Long
    Dim readfile As String
    Dim Elocation(1 To 3) As String
    
    Private Sub Command1_Click()
    Dim ArrFile() As String
    Dim DoubleLetter As Boolean
    Dim CSVFile As String
    
    
    CSVFile = Dir(App.Path & "\*.CSV")
    
    Do While CSVFile <> ""
    Set NashXl = CreateObject("excel.application")
    NashXl.Workbooks.Add
    Open CSVFile For Input As #1
    num = 0
    Elocation(1) = "A"
    Elocation(2) = "1"
    Elocation(3) = ""
    DoubleLetter = False
    Do While Not EOF(1)
    Line Input #1, readfile ' Assegna la riga a una variabile.
    'ArrFile = Split(readfile, ";")
    ArrFile = Split(readfile, ",")
    For i = 0 To UBound(ArrFile)
    NashXl.Range(Elocation(1) & Elocation(3) & Elocation(2)).Value = ArrFile(num)
    If Elocation(1) <> "Z" And DoubleLetter = False Then
    Elocation(1) = Chr$(Asc(Elocation(1)) + 1)
    num = num + 1
    Else
    If Elocation(3) = "" Then
    Elocation(1) = "A"
    Elocation(3) = "A"
    DoubleLetter = True
    Else
    Elocation(3) = Chr$(Asc(Elocation(3)) + 1)
    End If
    End If
    Next
    num = 0
    Elocation(1) = "A"
    Elocation(2) = Val(Elocation(2)) + 1
    Elocation(3) = ""
    DoubleLetter = False
    Loop
    NashXl.Visible = False
    Close #1
    
    
    NashXl.DisplayAlerts = True
    NashXl.ActiveWorkbook.SaveAs App.Path & "\Convertiti\" & Replace(UCase(CSVFile), ".csv", ".xls")
    NashXl.ActiveWorkbook.Close
    NashXl.Quit
    CSVFile = Dir()
    Loop
    MsgBox "Fatto!", vbExclamation, Me.Caption
    End Sub
    
    che funziona. Nel senso che, appunto crea un file .xls però quando cerco di aprire, sempre da vb, solleva l' errore
    " file non riconosciuto ".
    In effetti anche ad aprirlo da Excel mi dà un messaggio

    Nome:   Errore.JPG
Visite:  20
Grandezza:  23.5 KB

    ovviamente rispondo "si" e una volta aperto lo salvo. A quel punto il file è .xls e viene aperto anche all'interno di VB.
    Perchè il file generato non viene riconosciuto all'interno di VB ? Dov'è l'inghippo ?

    Scusatemi se mi sono dilungato, ho fatto numerose ricerche in rete ma non ho trovato niente per uscire da questo impiccio.
    Chiedo aiuto....
    Grazie

  2. #2
    Questa probabilmente deve essere

    NashXl.ActiveWorkbook.SaveAs App.Path & "\Convertiti\" & Replace(UCase(CSVFile), ".CSV", ".XLSX")
    
    ℹ️ Leggi di più su AntonioG ...

  3. #3
    L'avatar di gibra
    gibra non è in linea Very Important Person
    L'estensione deve corrispondere la formato.

    Se tu, arbitrariamente, decidi l'estensione XLS ma la versione installata richiede l'estensione XLSX ovviamente è sbagliato.

    Per conoscere quale estensione devi usare, conformemente alla versione installata sul pc dell'utente, basta leggere la proprietà Version dell'oggetto Excel.Application, per cui è sufficiente, dopo aver impostato il nome del file, verificare la Version di Excel:

            Dim sFileXLS As String
            sFileXLS = App.Path & "\cartella\miofile.xls"
            If excelApp.Version >= "12.0" Then
                sFileXLS = sFileXLS & "x"
            End If
    
    ℹ️ Leggi di più su gibra ...

  4. #4
    pierovb non è in linea Scolaretto
    E' proprio come hai suggerito !
    Grazie infinite.

  5. #5
    pierovb non è in linea Scolaretto
    Scusatemi ho risposto ad Antonio e poi ho letto il suggerimento di Gibra.
    Grazie ancora a tutt'e due.

  6. #6
    Se vuoi usare il vecchio formato .xls, basta che lo indichi

    Const xlExcel8 = 56
    
    NashXl.ActiveWorkbook.SaveAs App.Path & "\Convertiti\" & Replace(UCase(CSVFile), ".CSV", ".XLS"), xlExcel8
    
    ℹ️ Leggi di più su AntonioG ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Creazione unico file excel.
    Da therock979 nel forum C#
    Risposte: 1
    Ultimo Post: 26-03-2016, 16:02
  2. creazione file riepilogativo excel
    Da picchi2701 nel forum Microsoft Excel
    Risposte: 3
    Ultimo Post: 18-11-2011, 11:45
  3. creazione pulsante per importare file da excel ad access
    Da sammarco nel forum Microsoft Access
    Risposte: 14
    Ultimo Post: 17-12-2010, 12:28
  4. [Excel] Problema macro per creazione file csv
    Da daniele1306 nel forum Microsoft Excel
    Risposte: 3
    Ultimo Post: 17-12-2010, 10:43
  5. Creazione file di Word da Excel [Era: Automazioni]
    Da euris nel forum Microsoft Excel
    Risposte: 3
    Ultimo Post: 22-05-2008, 21:48