Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1772to1776
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 beschleunigen

Code beschleunigen
21.07.2020 15:09:07
Henry
Hallo Zusammen,
ich habe ein Probelm mit den beiden Codes, welche ich benötige um in einem Messprotokoll bestimmte Felder kopieren und einfügen zu können und um gleichzeit das Protokoll entsprechend anpassen zu können
Der Code Toleranzfeld_einfügen funktioniert bisher einwandfrei, bis zu der markierten Stelle. Ab dieser wird er deutlich langsamer.
Code Toleranzfeld_entfernen ist vollständig langsam.
Habt ihr Vorschläge, um die Codes zu vereinfachen bzw. zu beschleunigen?
Danke für eure Hilfe
Sub Toleranzfeld_einfügen()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
v = Range("AE2")   'Werte aus Tabelle, damit sie bei erneuten Öffnen wieder verfügbar sind
c = Range("AD2")
v = v + 1
If v 
Sub Toleranzfeld_entfernen()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
v = Range("AE2")      'Werte aus Tabelle, damit sie bei erneuten Öffnen wieder verfügbar sind
c = Range("AD2")
If v 

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code beschleunigen
21.07.2020 16:17:03
Daniel
Hi
1. verzichte auf Select und Selection. Hänge die Befehle immer direkt an das jeweilige Objekt.
beim Einfügen muss man dafür anstelle von .Paste das .PasteSpecial verwenden
2. nimm mal bei deinen Einstellungen zur Geschwindigkeitserhöhung am Anfang der Codes folgendes hinzu:
- Application.PrintCommunication = False
- Activesheet.DisplayPagebreaks = False
3. versuche, wenn du mehrere Zeilen einfügen willst, diese nicht einzeln einzufügen, sondern möglichst als Block
vergleiche:
Rows(x).Insert
Rows(x).Insert

mit
Rows(x).Resize(2).Insert

beides fügt 2 Zeilen ein, ersters braucht aber doppelt so lang.
Gruß Daniel
Anzeige
AW: Code beschleunigen
22.07.2020 08:35:40
Henry
Danke für deine Hilfe.
Ich habe versucht den Code für das Eeinfügen der Zeilen anzupassen.
Es bringr mir jedoch jetzt Laufzeitfehler 13: Typen unverträglich
Bei google habe ich nichts finden können
Rows(Union(Range(Cells(75 + b, 2), Cells(75 + b, 9)), Range(Cells(73 + b, 10), Cells(73 + b, 23)), Range(Cells(67 + b, 24), Cells(67 + b, 27)))).Resize(7).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

AW: Code beschleunigen
22.07.2020 10:35:25
Daniel
Rows ist da auch nicht richtig.
war nur ein gnerelles Beispiel dafür, dass Zellbearbeitung im Block schneller ist, als jede Zelle einzeln zu bearbeiten und nicht speziell für dein Beispiel ausgelegt.
Anzeige
AW: Code beschleunigen
22.07.2020 10:42:00
Daniel
Du musst hier die Erweiterung in die Einzelnen Blöcke einbauen:
Range(Cells(75 + b, 2), Cells(75 + b + 7, 9))
und das natürlich für alle 3 Zellbereiche innerhalb des Union

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige