Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1792to1796
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

Makro beschleunigen

Makro beschleunigen
10.11.2020 18:30:04
Marko
Hallo zusammen,
mit dem nachstehenden Makro habe ich es offensichtlich "übertrieben". Soviel sei gesagt: Es funktioniert!
Meine Frage an Euch: Wie kann ich dieses Makro schneller machen und die Laufzeit von 90 Sek. plus reduzieren?
Ich habe mir das Makro so mit und mit zusammengebaut. Es ist sicher nicht optimal...
Vielen Dank im Voraus für Eure Unterstützung.
Private Sub CommandButton2_Click()
'Reset
CommandButton2.Caption = "Reset"
CommandButton2.Font.Size = 9
Dim JaNein
JaNein = MsgBox("Wollen Sie die Daten wirklich löschen ?", vbYesNo + vbQuestion, "Zeilen  _
weg")
If JaNein = vbNo Then
MsgBox "Die Daten werden nicht gelöscht."
Exit Sub
End If
MsgBox "Die Daten werden gelöscht."
Rows("14:87").Hidden = True
Tabelle79.Rows("92:1132").EntireRow.Hidden = True
Sheets("Hdl_Kond_Vergleich").Range("B7:C7").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B99").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B103").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B107").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B111").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B119").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B123").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B127").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B131").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("AD14:AD87").ClearContents
Sheets("TB").Range("E10:E24").ClearContents
Sheets("TB").Range("J1:J18").ClearContents
Sheets("TB").Range("O12:O18").ClearContents
Sheets("TB").Range("T12:T20").ClearContents
Rem: Deaktiviert alle Kontrollkästchen und Optionsbutton
Rem: aus der Symbolleiste "Formular"
Dim myShape As Shape
Application.ScreenUpdating = False
On Error Resume Next
For Each myShape In Sheets("TB").Shapes
If myShape.FormControlType = xlOptionButton Then _
myShape.OLEFormat.Object.Value = 0
Next
'Treue Bonus
Columns("AQ:AS").EntireColumn.Hidden = True
'Marken Bonus
Columns("AB").EntireColumn.Hidden = True
'Umsatz Planung
Columns("AD:AG").EntireColumn.Hidden = True
Tabelle79.ToggleButton2.Value = False
Tabelle79.ToggleButton4.Value = False
Tabelle79.ToggleButton5.Value = False
Tabelle79.ToggleButton6.Value = False
Tabelle79.ToggleButton7.Value = False
Tabelle79.ToggleButton8.Value = False
Tabelle79.ToggleButton9.Value = False
'Tabelle79.ToggleButton10.Value = False
Tabelle79.CommandButton4.Visible = False
Tabelle79.ToggleButton4.Visible = False
Tabelle79.ToggleButton5.Visible = False
Tabelle79.ToggleButton6.Visible = False
Tabelle79.ToggleButton8.Visible = False
Tabelle79.ToggleButton9.Visible = False
'Tabelle79.ToggleButton10.Visible = False
'Tabelle79.CommandButton6.Visible = False
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro beschleunigen
10.11.2020 18:38:17
Nepumuk
Hallo Marko,
setze mal zwischen die einzelnen Blöcke ein:
Debug.Print Time
Damit du siehst wo die größte Bremse ist. Was kommt dabei raus?
Gruß
Nepumuk
AW: Makro beschleunigen
10.11.2020 18:44:59
Marko
Habe die Debug.Print Time dazwischen gesetzt.
Es kommt jedoch eine Meldung "Fehler beim Kompolieren"
AW: Makro beschleunigen
10.11.2020 18:45:48
Marko
"Fehler beim Kompilieren"
AW: Makro beschleunigen
10.11.2020 18:49:22
Nepumuk
Hallo Marko,
welche Zeile wird markiert? Zeig deinen geänderten Code.
Gruß
Nepumuk
AW: Makro beschleunigen
10.11.2020 18:55:54
Marko

Private Sub CommandButton2_Click()
'Reset
CommandButton2.Caption = "Reset"
CommandButton2.Font.Size = 9
Dim JaNein
JaNein = MsgBox("Wollen Sie die Daten wirklich löschen ?", vbYesNo + vbQuestion, "Zeilen  _
weg")
If JaNein = vbNo Then
MsgBox "Die Daten werden nicht gelöscht."
Exit Sub
End If
MsgBox "Die Daten werden gelöscht."
Debug.Print Time
Rows("14:87").Hidden = True
Tabelle79.Rows("92:1132").EntireRow.Hidden = True
Sheets("Hdl_Kond_Vergleich").Range("B7:C7").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B99").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B103").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B107").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B111").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B119").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B123").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B127").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("B131").ClearContents
Sheets("Hdl_Kond_Vergleich").Range("AD14:AD87").ClearContents
Debug.Print Time
Sheets("TB").Range("E10:E24").ClearContents
Sheets("TB").Range("J1:J18").ClearContents
Sheets("TB").Range("O12:O18").ClearContents
Sheets("TB").Range("T12:T20").ClearContents
Debug.Print Time
Rem: Deaktiviert alle Kontrollkästchen und Optionsbutton
Rem: aus der Symbolleiste "Formular"
Dim myShape As Shape
Application.ScreenUpdating = False
On Error Resume Next
For Each myShape In Sheets("TB").Shapes
If myShape.FormControlType = xlOptionButton Then _
myShape.OLEFormat.Object.Value = 0
Next
Debug.Print Time
'Treue Bonus
Columns("AQ:AS").EntireColumn.Hidden = True
Debug.Print Time
'Marken Bonus
Columns("AB").EntireColumn.Hidden = True
Debug.Print Time
'Umsatz Planung
Columns("AD:AG").EntireColumn.Hidden = True
Debug.Print Time
Tabelle79.ToggleButton2.Value = False
Tabelle79.ToggleButton4.Value = False
Tabelle79.ToggleButton5.Value = False
Tabelle79.ToggleButton6.Value = False
Tabelle79.ToggleButton7.Value = False
Tabelle79.ToggleButton8.Value = False
Tabelle79.ToggleButton9.Value = False
Debug.Print Time
Tabelle79.CommandButton4.Visible = False
Tabelle79.ToggleButton4.Visible = False
Tabelle79.ToggleButton5.Visible = False
Tabelle79.ToggleButton6.Visible = False
Tabelle79.ToggleButton8.Visible = False
Tabelle79.ToggleButton9.Visible = False
Debug.Print Time
End Sub

Anzeige
AW: Makro beschleunigen
10.11.2020 19:07:15
Nepumuk
Hallo Marko,
welche Zeile wird markiert? Klick mal auf "Kompilieren von VBAProjekt" das findest du in der Menüleiste unter "Debuggen". Denn in deinem Code kann ich nichts erkennen was den Fehler auslöst. Und alle Tabellen und Controls anlegen tue ich mir nicht an.
Gruß
Nepumuk
AW: Makro beschleunigen
10.11.2020 18:56:59
Daniel
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents= False
End with
Und am Schluß wieder alles auf true und Automatic setzen
AW: Makro beschleunigen
10.11.2020 19:10:55
Daniel
HI
1. versuche, soviele Zellen wie möglich gleichzeitig zu bearbeiten.
dein ganzer block für das Sheet Hdl_Kond_Vergleich lässt sich in einer Zeile ausdrücken:
gleiches beim Sheet TB und beim Ausblenden der Spalten:
Sheets("Hdl_Kond_Vergleich").Range("B7:C7,B99,B103,B107,B111,B119,B123,B127,B131,AD14:AD87"). _
ClearContents
Sheets("TB").Range("E10:E24,J1:J18,O12:O18,T12:T20").ClearContents
Range("AQ:AS,"AB:AB,AD:AG").EntireColumn.Hidden = True
2. wenn du Formularsteuerelemente hast und diese mit Ausgabezellen verknüpft sind, ist es vielleicht einfacher, die Ausgabezellen zu leeren anstatt jedes Element einzelen zu setzen.
3. wenn du noch viele Formeln oder weitere Eventmakros hast und deren Ausführung bzw neuberechnung hier nicht notwendig ist, dann such mal nach "GetMoreSpeed"
wenn du Laufzeiten von einzelnen Programmteilen messen willst, dann geht das so:
dim T as double
xxx
xxx irgendwelcher Code
xxx
t = timer
xxx
xxx hier der Code den du messen willst
xxx
Debug.Print Timer - T
xxx
xxx irgendwelcher Code
xxx
Timer ist die Uhrzeit in Sekunden.
Gruß Daniel
Anzeige
AW: Makro beschleunigen
10.11.2020 19:46:34
Marko
Danke für Eure Hilfe. Zeitlich ist es kein Vergleich mehr zu vorher. Super...

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige