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

VBA Code zu langsam

VBA Code zu langsam
03.02.2016 06:10:19
Bernd

Liebe Excelprofis,
mir wurde bereits vor Jahren hier geholfen und habe mir mit dieser Hilfe diese Datei
https://www.herber.de/bbs/user/103241.xlsm
(nur Muster) erstellt.
Es funktioniert alles bis auf eine Kleinigkeit, das ist zwar nicht Lebensnotwendig aber sehr nervig.
Wenn ich in meiner Übersicht den Löschen Button ausführe und danach auf den Sortierenbutton klicke, dauert es ständig 5-7 Sekunden Wartezeit bis ich wieder Zugriff auf die Datei habe um diese z.B.: zu speichern.
Könnte mir jemand bei dem VBA Code so behilflich sein, dass mein vorgenanntes Problem behoben wird?
Ich Danke allen die sich meiner annehmen und wünsche einen schönen Tag,
lg Bernd

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Steht doch im Code!
03.02.2016 06:18:59
RPP63
Hi!
Entferne im Makro sbName das Hochkomma vor:
'  Application.ScreenUpdating = False     ' evtl. NACH dem Test aktivieren
Gruß Ralf

AW: Steht doch im Code!
03.02.2016 06:56:45
Bernd
Hallo Ralf,
ich Danke Dir für den Hinweis. Trotzdem ich ein paar wenige VBA Kenntnisse habe, wäre ich auf Deine Lösung nicht gekommen.
Ja, es geht etwas schneller nun, aber einige Zeit wird doch benötigt. Ich Denke aber, dass dies aufgrund der größe normal sein wird.
Recht herzlichen Dank für Deine Hilfestellung und liebe Grüße.
mfg Bernd

AW: Steht doch im Code!
03.02.2016 06:59:16
Werner
Hallo Bernd,
da gibt es hier im Netz das Makro GetMoreSpeed, probier das mal aus.
Folgenden Code in dein Modul1 kopieren:
Public Static Sub GetMoreSpeed(Optional ByVal Modus As Boolean = True)
Dim intCalculation As Integer
If Modus = True Then intCalculation = Application.Calculation
With Application
.ScreenUpdating = Not Modus
.EnableEvents = Not Modus
.Calculation = IIf(Modus = True, xlManual, intCalculation)
.Cursor = IIf(Modus = True, 2, -4143)
End With
End Sub
Dann am Anfang des Codes deines Sortierenbuttons dann so aufrufen:
Sub sbName()
Dim strN As String, X As Long, Y As Long, i As Long
GetMoreSpeed (True)
With Sheets("01. Übersichtsliste")
.Unprotect
For X = 1 To Worksheets.Count - 1
For Y = X + 1 To Worksheets.Count
If Worksheets(Y).Name < Worksheets(X).Name Then
Worksheets(Y).Move Before:=Worksheets(X)
End If
Next Y
Next X
.Activate
Range("A:B").ClearContents
Application.PrintCommunication = False
For i = 1 To Worksheets.Count
strN = Worksheets(i).Name
.Cells(i + 2, 2) = strN
.Hyperlinks.Add Anchor:=Cells(i + 2, 2), Address:="", _
SubAddress:="'" & strN & "'!A1", TextToDisplay:=strN
If .Name <> strN Then
.Cells(i + 2, 1) = i - 1
Worksheets(i).Cells(2, 2).Value = i - 1
Worksheets(i).PageSetup.RightFooter = CStr(i - 1)
End If
Next i
.Columns("A:A").EntireColumn.AutoFit
Application.PrintCommunication = True
Application.GoTo Reference:="R3C1"
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
GetMoreSpeed (False)
End Sub
Gruß Werner

Anzeige
AW: Steht doch im Code!
03.02.2016 07:02:30
Bernd
Hallo Werner,
habe auch Deinen Vorschlag getestet und komme zum selben Ergebnis wie beim Vorschlag von Ralf.
Auch Dir ein dickes Dankeschön für Deine Mühen.
lg Bernd

AW: Danke für die Rückmeldung. o.w.T.
03.02.2016 19:45:37
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige