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