Newsgroup: it.comp.lang.visual-basic
Titolo: scrivere in un file excel...

Ciao!
Volevo chiedervi questa cosa: secondo voi come si possono scrivere dei dati
(elaborata di VB6.0) direttamente in un file excel, al posto che in un file
normale (utilizzando l'espressione print#, o write#.... che mi pare che sia
piu' conveniente!)...?
Avrei il problema di automatizzare il processo: attualmente si prendono le
tabelle di dati elaborati con VB6, si incollano in excel e poi, sempre a
mano, si fanno dei grafici. E' possibile automatizzare il tutto senza
diventar matti o essere dei professionisti di VB6? Intendo automatizzare
anche la creazione dei grafici!
Grazie.

...

Ti do le indicazioni principali:
1) aggiungi, nei riferimenti del progetto, la libreria di Excel
2) definisci le variabili oggetto 
  Dim xlApp   As Excel.Application
  Dim xlBook  As Excel.Workbook
  Dim xlSheet As Excel.Worksheet
  ' Assegna alle variabili dei riferimenti
  ' all'oggetto.
  ' Utilizza metodi Add per creare nuovi oggetti
  ' Workbook e Worksheet.
 
  Set xlApp = New Excel.Application
  Set xlBook = xlApp.Workbooks.Add
  Set xlSheet = xlBook.Worksheets.Add
  xlSheet.Name = "NomeFoglio"
  ' rendi il foglio visibile
  xlApp.Visible = True
 
3) utilizza l'insieme Columns per impostare le proprietà delle colonne
  ' Imposto la larghezza delle colonne
  xlSheet.Columns("A").ColumnWidth = 10
  xlSheet.Columns("B").ColumnWidth = 5
  xlSheet.Columns("C").ColumnWidth = 10
  xlSheet.Columns("D").ColumnWidth = 18
  xlSheet.Columns("E").ColumnWidth = 10
  xlSheet.Columns("F").ColumnWidth = 10
  xlSheet.Columns("G").ColumnWidth = 10
  xlSheet.Columns("H").ColumnWidth = 10
  xlSheet.Columns("I").ColumnWidth = 10
  xlSheet.Columns("J").ColumnWidth = 10
  xlSheet.Columns("K").ColumnWidth = 10
4) utilizza l'insieme Cells per impostare le proprietà delle singole celle
  ' set valori default foglio
  With xlSheet.Cells.Font
    .Name = "Arial"
    .Size = 8
    .Bold = False
    .Italic = False
  End With
  ' R è una variabile che contiene il numero della riga
  xlSheet.Cells(R, 2).NumberFormat = "#,#"
  xlSheet.Cells(R, 5).NumberFormat = "#,#"
  xlSheet.Cells(R, 6).NumberFormat = "#,#"
  xlSheet.Cells(R, 7).NumberFormat = "0.00%"
  xlSheet.Cells(R, 8).NumberFormat = "0.00%"
  xlSheet.Cells(R, 9).NumberFormat = "0.00%"
  xlSheet.Cells(R, 10).NumberFormat = "#,#"
  xlSheet.Cells(R, 11).NumberFormat = "#,#"
  ' rs è un recordset contenente i dati da inserire nel foglio   
  xlSheet.Cells(R, 2).Value = rs!Ranking
  xlSheet.Cells(R, 3).Value = rs!Marca
  xlSheet.Cells(R, 4).Value = rs!Modello
  xlSheet.Cells(R, 5).Value = rs!ACQuant
  xlSheet.Cells(R, 6).Value = rs!APQuant
5) salva e chiudi il foglio
  ' Salvataggio foglio Excel
  xlSheet.SaveAs App.Path & "\MioFoglio.XLS"
 
  ' Chiude Microsoft Excel con il metodo Quit.
  xlApp.Quit
 
  ' Rilascia gli oggetti.
  Set xlApp = Nothing
  Set xlBook = Nothing
  Set xlSheet = Nothing
Spero ti basti: in caso contrario posta pure le tue richieste.
Ciao

 Ciao
Ti ringrazio molto!!!
Sinceramente speravo fosse piu' semplice... mi sa che mi tocca sgobbare un
po'! ;-)
Per ora mi basta di sicuro, ora tocca a me lavorare! Comincio subito a
guardarmi tutto quello che mi hai scritto.
Grazie ancora!!!

 guardarmi tutto quello che mi hai scritto.
Aggiungo, a completamento, che converrebbe non includere la libreria di
Excel, dimensionare gli oggetti come Object, e usare il CreateObject per
puntare a Excel.Application (argomento discusso parecchio la settimana
scorsa).
Se oltre a quanto postato, ti servisse fare altre cose, ricorda che puoi
evitare di scrivere tu il codice, visto che il registratore di macro di
excel ti prepara il codice già pronto da copiaincollare in VB, mettendo
giusto a posto i nomi degli oggetti (tipicamente il WorkSheet).
Ciao
Alberto
--
"Non mi sembra più granda del Delfino..."
"A partir dal fat che la merda liquida
l'as drisa gnan a puntlarla,
còsta chì l'è piò granda, gnuranta."