Hallo zusammen.
ich bin noch neu in der Vb Net Programmierung
Mein Problem ich möchte eine Listview mit Daten aus einer Exceltabelle füllen.
Das hat auch Anfangs gut funktioniert, aber seit gestern bekomme ich die Fehlermeldung "System.Runtime.InteropServices.COMException: "Der Remoteprozeduraufruf ist fehlgeschlagen. (Ausnahme von HRESULT: 0x800706BE)"
und ich kann nicht herausfinden wieso. vielleicht kann mir jeman von euch einen Tipp geben
Hier mal mein Codeansatz.
Danke für eure Hilfe
*Topic verschoben und Code-Tag eingefügt (das nächste Mal bitte selbst machen!)*
ich bin noch neu in der Vb Net Programmierung
Mein Problem ich möchte eine Listview mit Daten aus einer Exceltabelle füllen.
Das hat auch Anfangs gut funktioniert, aber seit gestern bekomme ich die Fehlermeldung "System.Runtime.InteropServices.COMException: "Der Remoteprozeduraufruf ist fehlgeschlagen. (Ausnahme von HRESULT: 0x800706BE)"
und ich kann nicht herausfinden wieso. vielleicht kann mir jeman von euch einen Tipp geben
Hier mal mein Codeansatz.
VB.NET-Quellcode
- Imports Microsoft.Office.Interop
- Public Class Form1
- Private Structure ExcelRows
- Dim C1 As String
- Dim C2 As String
- Dim C3 As String
- Dim C4 As String
- Dim C5 As String
- Dim C6 As String
- Dim C7 As String
- Dim C8 As String
- Dim C9 As String
- Dim C10 As String
- Dim C11 As String
- End Structure
- Private ExcelRowList As List(Of ExcelRows) = New List(Of ExcelRows)
- Private Sub btnDateiÖffnen_Click(sender As Object, e As EventArgs) Handles btnDateiÖffnen.Click
- Me.OpenFileDialog1.FileName = Nothing
- If Me.OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
- Me.TextBox1.Text = Me.OpenFileDialog1.FileName
- End If
- If GetInfo() = True Then
- For Each Xitem In ExcelRowList
- Dim lvitem As ListViewItem
- lvitem = Me.lsvDaten.Items.Add(Xitem.C1)
- lvitem.SubItems.AddRange(New String() {Xitem.C2, Xitem.C3, Xitem.C4, Xitem.C5, Xitem.C6, Xitem.C7, Xitem.C8, Xitem.C9, Xitem.C10, Xitem.C11})
- Next
- End If
- End Sub
- '---------------------------------------------------------------
- Private Function GetInfo() As Boolean
- Dim Completed As Boolean = False
- 'open
- Dim MyExcel As New Excel.Application
- MyExcel.Workbooks.Open(Me.TextBox1.Text)
- 'Extract
- MyExcel.Sheets("Übersicht").activate()
- MyExcel.Range("A2").Activate()
- Dim ThisRow As New ExcelRows
- Do
- If MyExcel.ActiveCell.Value > Nothing Or MyExcel.ActiveCell.Text > Nothing Then
- ThisRow.C1 = MyExcel.ActiveCell.Value
- MyExcel.ActiveCell.Offset(0, 1).Activate()
- ThisRow.C2 = MyExcel.ActiveCell.Value
- MyExcel.ActiveCell.Offset(0, 1).Activate()
- ThisRow.C3 = MyExcel.ActiveCell.Value
- MyExcel.ActiveCell.Offset(0, 1).Activate()
- ThisRow.C4 = MyExcel.ActiveCell.Value
- MyExcel.ActiveCell.Offset(0, 1).Activate()
- ThisRow.C5 = MyExcel.ActiveCell.Value
- MyExcel.ActiveCell.Offset(0, 1).Activate()
- ThisRow.C6 = MyExcel.ActiveCell.Value
- MyExcel.ActiveCell.Offset(0, 1).Activate()
- ThisRow.C7 = MyExcel.ActiveCell.Value
- MyExcel.ActiveCell.Offset(0, 1).Activate()
- ThisRow.C8 = MyExcel.ActiveCell.Value
- MyExcel.ActiveCell.Offset(0, 1).Activate()
- ThisRow.C9 = MyExcel.ActiveCell.Value
- MyExcel.ActiveCell.Offset(0, 1).Activate()
- ThisRow.C10 = MyExcel.ActiveCell.Value
- MyExcel.ActiveCell.Offset(0, 1).Activate()
- ThisRow.C11 = MyExcel.ActiveCell.Value
- ExcelRowList.Add(ThisRow)
- MyExcel.ActiveCell.Offset(1, -10).Activate()
- Else
- Completed = True
- Exit Do
- End If
- Loop
- 'Close
- MyExcel.Workbooks.Close()
- MyExcel = Nothing
- Return Completed
- End Function
- Private Sub btnLeeren_Click(sender As Object, e As EventArgs) Handles btnLeeren.Click
- 'Items.Clear() !!!
- Me.lsvDaten.Items.Clear()
- End Sub
- Private Sub btnLöschen_Click(sender As Object, e As EventArgs) Handles btnLöschen.Click
- 'einzelne Zeile für den zu löschenden Eintrag/Einträge der Tagelle
- Dim zeile As Windows.Forms.ListViewItem
- 'Rückfrage, ob wirklich geöscht werden soll
- If MsgBox("Möchten Sie wirklich löschen?", MsgBoxStyle.YesNo Or MsgBoxStyle.Question, "Löschen von einem Datensatz / mehrere Datensätzen !") <> MsgBoxResult.Yes Then
- Exit Sub 'vorzeitig verlassen
- End If
- For Each zeile In Me.lsvDaten.SelectedItems
- Me.lsvDaten.Items.Remove(zeile)
- Next
- End Sub
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- With Me.cboNamen
- ' .Items.Add("")
- .Items.Add("Max Mustermann")
- .Items.Add("Susi Mustermann")
- .SelectedIndex = 0
- End With
- End Sub
Danke für eure Hilfe
*Topic verschoben und Code-Tag eingefügt (das nächste Mal bitte selbst machen!)*
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()