Hallo Experten,
irgendetwas stimmt nicht mit dem Blatt neueTab, in das ich per untenstehendem Makro Zellenbereiche aus den beiden anderen Blättern hineinkopiert habe: Es ist sehr langsam im Bildaufbau beim Benutzen der Pfeil- und Bildlauftasten.
Zugegebenermaßen ist die Datei recht groß ( 13600 Zeilen x 115 Spalten ). Aber die beiden Rechenblätter, aus denen die Quelldaten stammen, befinden sich in der gleichen Datei und haben nicht diese „Langsamkeit“.
Hat Jemand eine Idee, was da geschehen ist bzw. geschieht?
Freundliche Grüße
Thomas
Sub importieren()
’ importieren Makro
’ aktuelle Daten aus WIAS neueTab, Spalten 1-92, ca. 14.000 Zeilen
’ sollen mit bestehenden Daten, Klassifizierungen und Logiken
’ verknüpft werden, die in Tabelle import in den Spalten 93 bis 130 artikelbezogen
’ abgelegt sind
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'Application.DisplayAlerts = False
'Randbedingungen feststellen
Sheets(„import“).Select
lr_imp = ActiveCell.SpecialCells(xlLastCell).Row
lc_imp = ActiveCell.SpecialCells(xlLastCell).Column
Sheets(„alteTab“).Select
lr_alt = ActiveCell.SpecialCells(xlLastCell).Row
lc_alt = ActiveCell.SpecialCells(xlLastCell).Column
Application.CutCopyMode = False
zeile_alt = 9
Sheets(„neueTab“).Select
For i = 9 To lr_imp 'alle importierten Zeilen
artikel_imp = Worksheets(„import“).Cells(i, 1) * 1 'aktueller importierter Artikel
artikel_alt = Worksheets(„alteTab“).Cells(zeile_alt, 1) * 1
With Worksheets(„import“) 'linke Seite kopieren
.Range(.Cells(i, 1), .Cells(i, 92)).Copy Destination:=Worksheets(„neueTab“).Cells(i, 1)
End With
Richtung = „“
Schleife:
artikel_alt = Worksheets(„alteTab“).Cells(zeile_alt, 1) * 1
If (artikel_alt = artikel_imp) Then 'rechte Seite kopieren
With Worksheets(„alteTab“)
.Range(.Cells(zeile_alt, 93), .Cells(zeile_alt, 130)).Copy Destination:=Worksheets(„neueTab“).Cells(i, 93)
End With
zeile_alt = zeile_alt + 1
End If
If (artikel_alt artikel_imp) Then
If Richtung = „kleiner“ Then GoTo SchleifenEnde
Let zeile_alt = zeile_alt - 1
Richtung = „größer“
GoTo Schleife
End If
SchleifenEnde:
Next i
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
'Application.DisplayAlerts = true
End Sub
