Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1344to1348
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 Makro beschleunigen

VBA Makro beschleunigen
10.01.2014 14:27:21
Summerknuddel
Hallo zusammen,
ich bin ein ziemlicher VBA-Anfänger und habe mir mit Mühe und Not folgenden Code zusammengestellt:
Sub ein_ausblenden_TS2014()
' ein_ausblenden_GPL2014 Makro
' GPL 2014 einblenden
Application.ScreenUpdating = False
'Spalten einblenden
Range("R:R,AF:AF,AT:AT,BH:BH,BV:BW,CJ:CL").Select
Selection.EntireColumn.Hidden = False
'Monate ausblenden
Range("D:Q,S:AE,AG:AS,AU:BG,BI:BU,BX:CI").Select
Selection.EntireColumn.Hidden = True
'Zeilen ein_ausblenden
Set CellRange = Range("D9:D179,D181:D275,D277:D542")
For Each cell In CellRange
With cell
.EntireRow.Hidden = (cell.Value  "TS2014")
.EntireRow.Hidden = (cell.Value = "TS2014" Or cell.Value = "TS2014_1") = False
End With
Next
Application.ScreenUpdating = True
End Sub

Ziel des Ganzen ist, dass bei Auswahl einer Überschrift durch ein Kombinationsfeld bestimmte Zeilen und Spalten ein- bzw. ausgeblendet werden. Das Kombinationsfeld greift dann auf oben genanntes Makro zu.
Der Teil, der am längsten läuft, ist sicherlich der ab „For Each“, da hier mehr als 400 Zeilen untersucht werden müssen.
Gibt es eine Möglichkeit, das Makro zu beschleunigen, ohne dass es seine Funktionalität verliert?
Ich bin dankbar über jede Antwort!
Gruß
summerknuddel

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Makro beschleunigen
10.01.2014 14:38:45
Rudi
Hallo,
teste mal:
Sub ein_ausblenden_TS2014()
Dim CellRange As Range, cell As Range, rngHide As Range
' ein_ausblenden_GPL2014 Makro
' GPL 2014 einblenden
Application.ScreenUpdating = False
'Spalten einblenden
Range("R:R,AF:AF,AT:AT,BH:BH,BV:BW,CJ:CL").EntireColumn.Hidden = False
'Monate ausblenden
Range("D:Q,S:AE,AG:AS,AU:BG,BI:BU,BX:CI").EntireColumn.Hidden = True
'Zeilen ein_ausblenden
Set CellRange = Range("D9:D179,D181:D275,D277:D542")
For Each cell In CellRange
Select Case cell
Case "TS2014", "TS2014_1"
'nix passiert
Case Else
If rngHide Is Nothing Then
Set rngHide = cell
Else
Set rngHide = Union(rngHide, cell)
End If
End Select
'        With cell
'                .EntireRow.Hidden = (cell.Value  "TS2014")
'                .EntireRow.Hidden = (cell.Value = "TS2014" Or cell.Value = "TS2014_1") =  _
False
'        End With
Next
CellRange.EntireRow.Hidden = False
If Not rngHide Is Nothing Then rngHide.EntireRow.Hidden = True
Application.ScreenUpdating = True
End Sub

Gruß
Rudi

Anzeige
AW: VBA Makro beschleunigen
10.01.2014 14:57:47
Summerknuddel
Wow, das funktioniert super. Bin hellauf begeistert!
Vielen vielen Dank!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige