Archiv-Suche beschleunigen möglich?
06.01.2015 16:10:47
dani
Ich hoffe, Ihr seid gut ins neue Jahr gestartet.
Ich arbeite viel mit Excel und habe mir auch einiges an VBA-Wissen angeeignet.
Den VBA-Code, um den es geht, habe ich vor einiger Zeit programmieren lassen. Es handelt sich um eine gezielte Suche in einem Artikelarchiv (wird regelmässig in Excel-Datei als neues Blatt angelegt). Je länger meine Kalkulation nun im Gebrauch ist, desto grösser wird das Archiv und umso länger sucht der Code die nötigen Informationen für mich heraus. Lange Einleitung, kurze Frage: Ist es möglich, die Artikel-Suche zu beschleunigen? Das übersteigt nämlich meine VBA-Kenntnisse.
Vielen Dank bereits im Voraus für eure Hilfe!
Hier der entsprechende Auszug aus dem gesamten Code (mit den Bezeichnungen der Worksheets, aber ohne für die Suche Unrelevantes):
For Each blatt In ActiveWorkbook.Sheets
If (blatt.name SH_VORB_VPEIGENPRSAP And blatt.name SH_VORB_VPSAP) Then
blatt.Select
Set foundRange = blatt.Columns("A:A").Find(artNr, LookIn:=xlValues)
If Not foundRange Is Nothing Then
blatt.Range("B" & foundRange.row).Copy
Workbooks(WB_DETAILPREISKALK).Sheets(SH_ARTIKELSUCHE).Range("e" & startRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone
blatt.Range("C" & foundRange.row).Copy
Workbooks(WB_DETAILPREISKALK).Sheets(SH_ARTIKELSUCHE).Range("f" & startRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone
blatt.Range("D" & foundRange.row).Copy
Workbooks(WB_DETAILPREISKALK).Sheets(SH_ARTIKELSUCHE).Range("g" & startRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone
blatt.Range("E" & foundRange.row).Copy
Workbooks(WB_DETAILPREISKALK).Sheets(SH_ARTIKELSUCHE).Range("h" & startRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone
blatt.Range("F" & foundRange.row).Copy
Workbooks(WB_DETAILPREISKALK).Sheets(SH_ARTIKELSUCHE).Range("i" & startRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone
blatt.Range("G" & foundRange.row).Copy
Workbooks(WB_DETAILPREISKALK).Sheets(SH_ARTIKELSUCHE).Range("j" & startRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone
blatt.Range("H" & foundRange.row).Copy
Workbooks(WB_DETAILPREISKALK).Sheets(SH_ARTIKELSUCHE).Range("k" & startRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone
blatt.Range("I" & foundRange.row).Copy
Workbooks(WB_DETAILPREISKALK).Sheets(SH_ARTIKELSUCHE).Range("l" & startRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone
blatt.Range("J" & foundRange.row).Copy
Workbooks(WB_DETAILPREISKALK).Sheets(SH_ARTIKELSUCHE).Range("m" & startRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone
startRow = startRow + 1
End If
End If
Next
End Sub