Hallo Ralf,
Du hast recht ich exportiere die Teileliste und lese die Werte Zeilenweise aus.
Ich gehe wie folgt vor:
- als erstes Speicher ich die Teileliste in eine Matrix
     ReDim Matrix_Stückliste(anzahlRow - 1, anzahlColumn - 1)
        
        Dim läufer As Integer = 0
        For i As Integer = 0 To oStückliste.PartsListRows.Count - 1
            'Überprüfen ob die Reihe nicht unsichtbar ist
            If oStückliste.PartsListRows.Item(i + 1).Visible = True Then
                For k As Integer = 0 To anzahlColumn - 1
                    Matrix_Stückliste(läufer, k) = oStückliste.PartsListRows.Item(i + 1).Item(k + 1).Value.ToString
                Next
                läufer += 1
            End If
        Next
das dauert so ca. 2 sekunden bei den 75 Positionen
- dann Öffne ich Excel wenn der noch nicht offen ist 
        'Excell Öffnen
 
        On Error Resume Next
        objExcel = GetObject(, "Excel.Application")
        If Err.Number Then
            Err.Clear()
            On Error Resume Next
            objExcel = CreateObject("Excel.Application")
            If Err.Number Then
                Err.Clear()
                MsgBox("Kann Excel nicht öffnen.")
            End If
        End If
        objExcel.Run()
        objWorkbook = objExcel.Workbooks.Open(Stücklisten_Vorlage_Pfad)
        objWorksheet = objWorkbook.Sheets("Stückliste")
        objExcel.Visible = True
- danach werden die Daten eingetragen
For i As Integer = 0 To Matrix_Stückliste.GetUpperBound(0) 'int_Anz_Row
            Dim zaehler As Integer
            zaehler += 1
            'Daten Eintragen
            'POS. Nummer eintragen
            objExcel.Worksheets("Stückliste").Cells(zaehler + 8, 1) = Matrix_Stückliste(i, 0).ToString
            'Stückzahl eintragen
            objExcel.Worksheets("Stückliste").Cells(zaehler + 8, 4) = Matrix_Stückliste(i, 1).ToString
            'Zeichnungsnummer eintragen
            objExcel.Worksheets("Stückliste").Cells(zaehler + 8, 6) = Matrix_Stückliste(i, 2).ToString
            'Benennung eintragen
            objExcel.Worksheets("Stückliste").Cells(zaehler + 8, 5) = Matrix_Stückliste(i, 3).ToString
            'Werkstoff eintragen
            objExcel.Worksheets("Stückliste").Cells(zaehler + 8, 8) = Matrix_Stückliste(i, 4).ToString
            'Bestellung/Rohmass eintragen
            objExcel.Worksheets("Stückliste").Cells(zaehler + 8, 9) = Matrix_Stückliste(i, 5).ToString
            'DIN eintragen
            objExcel.Worksheets("Stückliste").Cells(zaehler + 8, 10) = Matrix_Stückliste(i, 6).ToString
            'Firma/Bemerkung eintragen
            objExcel.Worksheets("Stückliste").Cells(zaehler + 8, 11) = Matrix_Stückliste(i, 7).ToString
        Next
das Problem habe ich schon seit längeren aber bis jetzt keine Zeit gehabt sich darum zu kümmern. Ich weiß das es früher auf jedem Fall schneller ging.
Gruß
Andreas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP