Hi,
ich weiss die überschrift ist nicht die Ware. Sry. Ich lasse mir ExcelDateien (xlsx) in einer ListBox auflisten und bei einer Auswahl deren Spalte A in ComboBox2 und Spalte D in ComboBox3 auflisten. Funktioniert Soweit. Mein Problem: ich möchte das wenn ich in der ListBox eine andere ExcelDatei auswähle die alte geschlossen wird? Ich sehe immer im Taskmanager eine neue Excel Anwendung. Wie kann ich das bewerkstelligen?
Spoiler anzeigen
Vieleicht hat ja auch jemand eine Idee wie ich das noch vereinfachen kann. Ist schon Spät
PS. Es kommen Leere zeilen in der ExcelTabelle vor.
ich weiss die überschrift ist nicht die Ware. Sry. Ich lasse mir ExcelDateien (xlsx) in einer ListBox auflisten und bei einer Auswahl deren Spalte A in ComboBox2 und Spalte D in ComboBox3 auflisten. Funktioniert Soweit. Mein Problem: ich möchte das wenn ich in der ListBox eine andere ExcelDatei auswähle die alte geschlossen wird? Ich sehe immer im Taskmanager eine neue Excel Anwendung. Wie kann ich das bewerkstelligen?
VB.NET-Quellcode
- Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
- ComboBox2.Items.Clear()
- ComboBox3.Items.Clear()
- Dim xlApp As Excel.Application
- Dim xlBlatt As Excel.Worksheet
- Dim xlMappe As Excel.Workbook
- Dim xlRangeA As Excel.Range
- Dim xlRangeD As Excel.Range
- xlApp = New Excel.Application
- xlApp.Visible = False 'Zum Testen ob xlApp geschlossen wird ( Ja es wird geschlossen)
- xlMappe = xlApp.Workbooks.Open(PfadS)
- xlBlatt = xlMappe.Worksheets("Tabelle1")
- Dim z As Long = xlApp.Sheets("Tabelle1").UsedRange.Rows.Count
- For i As Integer = 2 To z Step 1
- xlRangeA = xlApp.Range("A" + i.ToString)
- xlRangeD = xlApp.Range("D" + i.ToString)
- For Each Cell In xlRangeA
- If Not Cell.Text = "" Then
- ComboBox2.Items.Add(Cell.Text)
- End If
- For Each Celle In xlRangeD
- If Not Celle.Text = "" Then
- ComboBox3.Items.Add(Celle.Text)
- End If
- Next
- Next
- Next
- 'Alles schliesen
- xlBlatt.Close()
- xlMappe.Close()
- xlApp.Application.Quit()
Vieleicht hat ja auch jemand eine Idee wie ich das noch vereinfachen kann. Ist schon Spät
PS. Es kommen Leere zeilen in der ExcelTabelle vor.