PDA

View Full Version : [Visual Basic 2005 Express] Problema con Excel!!


Dreamer4135
11-11-2007, 12:13
ho scritto il seguente codice che però non funziona:

Public Class Form1
Dim XLS As New Excel.Application 'queste mi servono per l'esportazione su excel
Dim we As Excel.Worksheet 'anche questa come sopra
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
XLS.Visible = True
XLS.Workbooks.Add()
we = XLS.Worksheets(1)
we.Name = "Entrate"
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
XLS.Visible = True
XLS.Workbooks.Add()
we = XLS.Worksheets(2)
we.Name = "Uscite"
End Sub
End Class


Non funziona in quanto una volta che ho cliccato uno dei due pulsanti, quando vado a cliccare di nuovo dopo aver chiuso la finestra excel che compariva al primo click, mi appare solo la barra del titolo di excel ma senza la tabella...
come posso fare??
Edit:
se invece lascio aperta la finestra excel che compare va tutto bene, cioè si apre una nuova finestra excel con la tabella...

Riordian
12-11-2007, 09:40
non so se la cosa è simile poichè .net con excel lo ho ustato poco, ma per creare il worksheet io usavo un codice tipo:

Dim XLS As New Excel.Application
Dim wb As Excel.Workbook
Dim we As Excel.Worksheet

wb = XLS.Workbook.Add()
we = wb.WorkSheet.Add()
we.name = 'uscite'

praticamente il worksheet sta nella collection del workbook e non del foglio excel.
A me così funziona.
Spero ti sia utile ;)

amedeoviscido
12-11-2007, 14:11
Worksheet è un foglio di lavoro, mentre workbook è l'intera cartella di lavoro, con più fogli.

Prova a fare un pulsante con questo codice:

XLS.Workbooks(1).Close(SaveChanges:=False) ' true se vuoi salvare
XLS.Quit()

E non chiudere excel direttamente. Il problema è che se chiudi Excel, il riferimento che sta nella XLS punta ad una applicazione che non esiste più! credo che ti si impalli per questo...

Potresti fare, all'inizio di ogni pulsante, così:

XLS = New Microsoft.Office.Interop.Excel.Application

Ma non son sicuro che funzioni eh!

Dreamer4135
12-11-2007, 15:52
grazie per le risposte, stasera provo un po le due soluzioni, vi faccio sapere...

Dreamer4135
15-11-2007, 20:41
... non funziona nessuno dei metodi... avete altre soluzioni?


edit:

Anzi questo funziona!

Potresti fare, all'inizio di ogni pulsante, così:

XLS = New Microsoft.Office.Interop.Excel.Application