Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
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

Anwendung wird immer langsamer

Anwendung wird immer langsamer
10.01.2009 01:29:16
braleta
Hallo Excelianer,
ich arbeite an einem Berichtsblatt, das am Monatsende ausgefüllt werden und alle erbrachten Leistungen für ein einzelnes Projekt enthalten muss.
Dieses Berichtsblatt hat für jeden Monatstag (dynamisch gesteuert) eine Berichtszeile mit verschiedenen berichts- relevanten Parametern.
Hat ein Mitarbeiter im Laufe dieses Berichtsmonats Bereitschaft, braucht er dafür zwei zusätzliche Zeilen, die die vertraglich geregelten Bereitschaftsparameter mit der individuellen Bereitschaftsvergütung spezifizieren als auch dem Mitarbeiter erlauben, eventuelle Noteinsätze zu berichten.
Das Einfügen dieser zwei Zeilen erlaube ich über "Worksheet_Change(ByVal target As Range)".
Das alles funktioniert bestens, nur wird meine Anwendung bei jedem neuen Bereitschaftstag langsamer und langsamer. Der erste Tag ist in max einer Sekunde fertig, der fünfte braucht schon mindestens 15 Sekunden, Tendenz steigend.
Die Verlangsamung tritt da ein, wo eine Leerzeile eingefügt wird und ebenso da, wo in diese Leerzeile eine Zeile mit bestimmten Inhalten kopiert wird.
Im folgenden Code (es ist nur ein kleiner Auschnitt) markiere ich die betreffenden Zeilen in Bold kursiv.
===========================================================
If UCase(target.Value) = "B" Or UCase(target.Value) = "BEREITSCHAFT" Then
AktiveZelle = ActiveCell.Address
'==> dieses ist die Zelle mit dem "B"
Range(XZelle).Select
WochenTag = ActiveCell.Offset(0, 48).Value
If ActiveCell.Offset(0, 48).Value = "So" Then FeierTag = "X"
If ActiveCell.Offset(0, 55).Value "" Then
ActiveCell.Offset(0, 0).Value = target.Value
Application.EnableEvents = True
Exit Sub
Else
'erhöhe den Zähler auf "BB5" um zwei, damit Strg-W richtig funktioniert
Range(RBZaehler).Value = Range(RBZaehler).Value + 2
'füge 2 Leerzeilen ein
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.EntireRow.Insert
ActiveCell.Offset(0, 48).Value = WochenTag
ActiveCell.Offset(0, 52).Value = WochenTag
Selection.EntireRow.Insert
ActiveCell.Offset(0, 48).Value = WochenTag
ActiveCell.Offset(0, 52).Value = WochenTag

' gehe zu dem Monatstag und kopiere Tag+Tag in die zwei neuen Zeilen
ActiveCell.Offset(-1, -2).Range("A1:B1").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1:A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Tag = Range(XZelle).Offset(0, -2).Value
If Tag Range("BG3:CJ5").Copy Range(XZelle)
Else
Range("BG9:CJ11").Copy Range(XZelle)
End If

...
...
...
' gehe zurück zum "B"
Range(XZelle).Select
TagesInhalt = ActiveCell.Offset(0, -1).Value
End If
End If
End If
===========================================================
Das alles passiert in Office 12, aber auch in Office 11, wenn ich das Workbook statt XLSM als XLS speichere.
Kann mir jemand da einen Tipp geben, was ich falsch mache bzw. was ich ändern kann/muss, um aus dieser Verlangsamung zu kommen?
...bruno

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige