Newsgroup: it.comp.lang.visual-basic
Titolo: convertire da csv a xls

Dovrei convertire una montagna di file da csv a xls
Su planetsourcecode ho trovato qualcosa in VB, ma non vorrei reinventare 
l'acqua calda (tenendo conto che devo fare questa cosa per un amico e 
che non ci guadagno neanche un centesimo)
Avete qualche esempio VB o conoscete qualche programma free?
Un abbraccio a tutti
Nicola
PS allora il meeting? :)

 Avete qualche esempio VB o conoscete qualche programma free?
La cosa più immediata è una macro di excel, registrata una tantum ed 
eseguita per ogni csv.
Certo, se i file sono tanti, puoi scrivere qualche riga in vb e fare 
invocare la macro da vb usando Excel.Application e ciclando su 
Folder.Files del FileSystemObject.
Ciao
Alberto
-- 
A questo punto hanno trovato un muro,
un muro duro, molto molto duro,
che siamo noi.

Dunque, lavorando su un esempio reperito ho creato questa routine.
Converte la prime 52 colonne del file (va benissimo così, anche perchè 
non si arriva a 40 colonne in totale).
Il problema è che mi converte il primo file, mentre gli altri non li 
converte (o meglio, li crea, ma hanno all'interno solo una stringa strana).
Fa lo stesso anche a voi? Dove Sbaglio? Può essere che non reinizializzo 
in qualche modo il richiamo all excel.application?
Posto il codice per intero:
Dim NashXl As Excel.Application
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
     'NashXl.Range("A1").ColumnWidth = 15 'Imposta la larghezza delle 
colonne
     'NashXl.Range("B1").ColumnWidth = 10
     'NashXl.Range("C1").ColumnWidth = 20
     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, ";")
             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
End Sub

Falso allarme... erano i files formattati male.
Cmq potete usare il codice per le vostre app.
Io intanto lo pubblico sul Sito Comune
bye