Hallo,
ich bin wahrscheinlich zu lange am Rechner, so dass ich nicht mehr klar denken kann, brauche daher mal einen Denkanstoss...
1.
Ich möchte mit jedem Klick auf Button1 Daten in eine Excel-Tabelle schreiben und zwar immer hinten angesetzt. Was muss ich hierfür noch tun?
Aktuell habe ich ein kurzes Beispiel gemacht, hier wird jedoch auch immer die Überschrift mit geschrieben, das muss noch einmalig gemacht werden, quasi nach Erstellen der Datei, aber hier habe ich das nächste Problem.
2.
Ich erstelle die Datei, wenn sie nicht vorhanden ist, aber den Weg finde ich ziemlich doof, geht das zufällig einfacher??
3.
Nach dem speichern und schließen bleibt Excel weiterhin im TaskMgr aktiv, ich hatte im www den Tipp gelesen "xlApp = Nothing" anzufügen, dies ändert jedoch gar nichts. Was mache ich falsch? Anscheinend gibt es das Problem ja nur bei wenigen Leuten, da die meisten ja mit ähnlichen Codes arbeiten.
Bitte helft mir mal etwas auf die Sprünge
ich bin wahrscheinlich zu lange am Rechner, so dass ich nicht mehr klar denken kann, brauche daher mal einen Denkanstoss...
1.
Ich möchte mit jedem Klick auf Button1 Daten in eine Excel-Tabelle schreiben und zwar immer hinten angesetzt. Was muss ich hierfür noch tun?
Aktuell habe ich ein kurzes Beispiel gemacht, hier wird jedoch auch immer die Überschrift mit geschrieben, das muss noch einmalig gemacht werden, quasi nach Erstellen der Datei, aber hier habe ich das nächste Problem.
2.
Ich erstelle die Datei, wenn sie nicht vorhanden ist, aber den Weg finde ich ziemlich doof, geht das zufällig einfacher??
3.
Nach dem speichern und schließen bleibt Excel weiterhin im TaskMgr aktiv, ich hatte im www den Tipp gelesen "xlApp = Nothing" anzufügen, dies ändert jedoch gar nichts. Was mache ich falsch? Anscheinend gibt es das Problem ja nur bei wenigen Leuten, da die meisten ja mit ähnlichen Codes arbeiten.
VB.NET-Quellcode
- Imports Excel = Microsoft.Office.Interop.Excel
- Public Class Form1
- Private ueberschrifta1 As String = "Spalte 1"
- Private ueberschriftb1 As String = "Spalte 2"
- Private ueberschriftc1 As String = "Spalte 3"
- Private ueberschriftd1 As String = "Spalte 4"
- Private ueberschrifte1 As String = "Spalte 5"
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim xlApp As New Excel.Application
- Dim xlWorkBook As Excel.Workbook
- Dim misValue As Object = System.Reflection.Missing.Value
- Dim Tabelle As Excel.Worksheet
- Dim file As String = "C:\test.xlsx"
- If Not System.IO.File.Exists(file) Then
- xlWorkBook = xlApp.Workbooks.Add
- xlWorkBook.SaveAs(file)
- MessageBox.Show("Es ist ein Fehler aufgetreten, bitte wiederholen Sie den Vorgang!", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
- Exit Sub
- End If
- xlWorkBook = xlApp.Workbooks.Open(file)
- Tabelle = xlWorkBook.Sheets(1)
- Dim row = xlWorkBook.Sheets(1).Cells(xlWorkBook.Sheets(1).Rows.Count, 1).End(Excel.XlDirection.xlUp).Offset(1).Row
- xlApp.Visible = True
- xlApp = New Excel.Application
- xlWorkBook = xlApp.Workbooks.Add(misValue)
- 'Überschriften
- Tabelle.Cells(1, 1).Formula = ueberschrifta1
- Tabelle.Cells(1, 2).Formula = ueberschriftb1
- Tabelle.Cells(1, 3).Formula = ueberschriftc1
- Tabelle.Cells(1, 4).Formula = ueberschriftd1
- Tabelle.Cells(1, 5).Formula = ueberschrifte1
- 'Buchungsdaten eintragen
- Tabelle.Cells(row, 1).Formula = TextBox1.Text
- Tabelle.Cells(row, 2).Formula = TextBox2.Text
- Tabelle.Cells(row, 3).Formula = TextBox3.Text
- Tabelle.Cells(row, 4).Formula = TextBox4.Text
- Tabelle.Cells(row, 5).Formula = TextBox5.Text
- 'Formatierung
- Tabelle.Range("A1:G1").Font.Bold = True
- Tabelle.Columns.AutoFit()
- xlApp.DisplayAlerts = False
- xlWorkBook.Save()
- xlWorkBook.Close()
- xlApp.Quit()
- xlApp = Nothing
- End Sub
- End Class
Bitte helft mir mal etwas auf die Sprünge