Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1596to1600
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Code-Optimierung

Code-Optimierung
15.12.2017 10:29:47
Florian
Hallo Excel-Cracks,
ich habe ein kleines Makro geschrieben, das funktioniert auch wunderbar und tut was es soll. Nur leider ist es nicht sonderlich performant.
Das Makro konsolidiert Informationen aus einer beliebigen Anzahl an Formblättern, welche immer gleich aufgebaut sind (bzw. jede der 2 Sprachversionen ist immer gleich aufgebaut) in eine Tabelle. Hier wird noch eine Einordnung nach Namen vorgenommen. Dabei ist jeweils nur der Name der Dateien variabel.
Besonders ab einer Anzahl von ca. 100 Dateien dauert es echt eine ganze Zeit lang. Gibt es hier irgendwelche quick wins mit denen sich die Performance verbessern lässt?
Vielen Dank schonmal vorab!
Gruß Flo
Marko:
Application.ScreenUpdating = False
Dim N, zähler, Sprache As Long
Dim L, S, Dateipfad, sprache2 As String
'Zellen Bewertungsübersicht
Dim DEZBOE, DEZBRS, DEZBP, DEZBI, DEZBEC As String
'Einträge zählen und als Schleifenobergrenze festlegen
Set RangeLN = Worksheets("Matrix - Consolidate").range("D1:GE1")
zähler = Application.WorksheetFunction.CountA(RangeLN)
'variabler Pfad für den Ordner
Dateipfad = Sheets("Documentation").range("R55")
'Schleife
For counter = 0 To zähler - 1
'Datei mit Namen abhängig von Listeneintrag öffnen
L = Workbooks("DieseMappe.xlsm").Worksheets("Matrix - Consolidate").Cells(2, 4 + counter).Value
S = Workbooks("DieseMappe.xlsm").Worksheets("Matrix - Consolidate").Cells(1, 4 + counter).Value
Workbooks.Open Filename:=Dateipfad & "\Auswahl Sheet_" & L & "_" & S & ".xlsx"
'auf Sprachversion überprüfen
If ActiveSheet.Name = "Auswahl Sheet English" Then
Sprache = 1
sprache2 = "English"
Else:
Sprache = 0
sprache2 = "German"
End If
'variables Auslesen der Zellen
DEZBOE = Workbooks("DieseMappe.xlsm").Worksheets("Documentation").Cells(16, 29 + Sprache).Value 'T115
DEZBRS = Workbooks("DieseMappe.xlsm").Worksheets("Documentation").Cells(17, 29 + Sprache).Value 'T116
DEZBP = Workbooks("DieseMappe.xlsm").Worksheets("Documentation").Cells(18, 29 + Sprache).Value 'T117
DEZBI = Workbooks("DieseMappe.xlsm").Worksheets("Documentation").Cells(19, 29 + Sprache).Value 'T118
DEZBEC = Workbooks("DieseMappe.xlsm").Worksheets("Documentation").Cells(20, 29 + Sprache).Value 'T119
'Zuordnung Namen
'Sheets("Auswahl Sheet " & sprache2).Select
Select Case Sheets("Auswahl Sheet " & sprache2).Cells(9, 6 + Sprache * 2).Value
Case "Julia"
N = 0
Case "Hannes"
N = 5
Case "Martin"
N = 10
Case "Lars"
N = 15
Case "Anne"
N = 20
Case "Sophie"
N = 25
Case "Japonica"
N = 30
Case "Oliver"
N = 35
Case "Simone"
N = 40
Case "Thorsten"
N = 50
Case "Dieter"
N = 55
Case "Laura"
N = 65
End Select
'Kopieren und Einfügen der Werte
'Kategorie1
Worksheets("Auswahl Sheet " & sprache2).range(DEZBOE).Copy
Workbooks("DieseMappe.xlsm").Worksheets("Matrix - Consolidate").Cells(3 + N, 4 + counter).PasteSpecial Paste:=xlValues
'Kategorie2
Workbooks("Auswahl Sheet_" & L & "_" & S & ".xlsx").Worksheets("Auswahl Sheet " & sprache2).range(DEZBRS).Copy
Workbooks("DieseMappe.xlsm").Worksheets("Matrix - Consolidate").Cells(4 + N, 4 + counter).PasteSpecial Paste:=xlValues
'Kategorie3
Workbooks("Auswahl Sheet_" & L & "_" & S & ".xlsx").Worksheets("Auswahl Sheet " & sprache2).range(DEZBP).Copy
Workbooks("DieseMappe.xlsm").Sheets("Matrix - Consolidate").Cells(5 + N, 4 + counter).PasteSpecial Paste:=xlValues
'Kategorie4
Workbooks("Auswahl Sheet_" & L & "_" & S & ".xlsx").Worksheets("Auswahl Sheet " & sprache2).range(DEZBI).Copy
Workbooks("DieseMappe.xlsm").Sheets("Matrix - Consolidate").Cells(6 + N, 4 + counter).PasteSpecial Paste:=xlValues
'Datei schließen ohne Speichern
Workbooks("Auswahl Sheet_" & L & "_" & S & ".xlsx").Activate
ActiveWorkbook.Close (False)
Next counter
Application.ScreenUpdating = True

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code-Optimierung
15.12.2017 18:08:19
onur
Baue mal nach jedem Paste ein
Application.CutCopyMode = False

ein.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige