Langsamer ablauf von "Kopier" Makro
22.11.2019 13:08:04
"Kopier"
ich habe ein Makro geschrieben wo ich relativ simpel den Inhalt aus DateiA, in DateiB übertragen möchte.
Die Zeilenmenge in DateiA ändert sich aber dauerhaft, einzige Konstante sind die Spalten. Ebenso ist der Bereich zum Einfügen des kopierten Inhalts in DateiB festgelegt.
DateiB enthält noch Abfragen (=WENN; =SUMME; ect.) die auf Basis des eingefügten Inhaltes aus DateiA die benötigten Werte berechnet/liefert.
Mein Skript dazu sieht so aus:
Sub fftcImporting()
Dim wbk_ziel As String
Dim Anzahlzeilen As Integer
Dim Anzahlzeilen_FFTC As Integer
Dim sheet_seite_ziel As Integer
Dim sheet_seite_quelle As Integer
Dim reihe_ziel As Integer
Dim reihe_quelle As Integer
Dim spalte As Integer
'Prüfen ob Datei mit Informationen vorhanden ist
If Dir(ThisWorkbook.Path & "\DateiA.xls") = "" Then
MsgBox "Fehlende Quelldatei" & vbCrLf & "Das Makro wird abgebrochen", vbExclamation
Exit Sub
End If
wbk_ziel = ThisWorkbook.Name 'DateiB
sheet_seite_quelle = 1
For sheet_seite_ziel = 2 To 17
'Zellen leeren
Anzahlzeilen = Workbooks(wbk_ziel).Worksheets(sheet_seite_ziel).Range("A65535").End( _
xlUp).Row
If Anzahlzeilen = 1 Then
Anzahlzeilen = Anzahlzeilen + 2
End If
Workbooks(wbk_ziel).Worksheets(sheet_seite_ziel).Range("A3" & ":F" & Anzahlzeilen). _
ClearContents
'Daten aus DateiA kopieren
Anzahlzeilen_FFTC = Workbooks("DateiA.xls").Worksheets(sheet_seite_quelle).Range(" _
A65535").End(xlUp).Row
reihe_ziel = 3
reihe_quelle = 2
For i = 1 To Anzahlzeilen_FFTC
For spalte = 1 To 6
ThisWorkbook.Worksheets(sheet_seite_ziel).Cells(reihe_ziel, spalte) = Workbooks( _
_
_
"DateiA.xls").Worksheets(sheet_seite_quelle).Cells(reihe_quelle, spalte)
Next spalte
reihe_ziel = reihe_ziel + 1
reihe_quelle = reihe_quelle + 1
Next i
sheet_seite_quelle = sheet_seite_quelle + 1
'MsgBox sheet_seite_quelle
Next sheet_seite_ziel
Workbooks("DateiA.xls").Close False
End Sub
Wenn ich das Makro jetzt laufen lasse, werden 15 Sheets durchsucht und die Dauer ist meist bei 10+ Minuten. Könnt Ihr mir helfen das ganze schneller laufen zu lassen?
Gruß,
Sco