Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1228to1232
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 - Gruppierung

VBA - Gruppierung
e-mo
Hallo alle zusammen,
kann mir einer Helfen, ein Macro zu erstellen, was die Spalten gruppiert?
Habe folgende Datei hochgeladen, und so sieht die Struktur auch ungefähr aus.
Möchte gerne die Spalten (also horizontal) per Monatszeitraum Gruppieren.
Im Moment ist die Tabelle für August Gruppiert, nun soll es für September gruppiert werden...und im nächsten Monat, Oktober.....November...Dezember...dann wieder von vorne....und dass ca. für 20 Tabs...
Wir stellen immer dar: Aktueller Monat - 1, daher sind im Moment der Bereich für August sichtbar.
Danke schonmal vorab,
Gruss,
e-mo
https://www.herber.de/bbs/user/76708.xlsx

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

Betreff
Benutzer
Anzeige
AW: VBA - Gruppierung
21.09.2011 12:23:58
fcs
Hallo e-mo,
hier mein Vorschlag.
Gruß
Franz

Sub GruppierenNeu()
Dim wks As Worksheet
Dim lngSpalte As Long
Dim Datum1 As Date, Datum2 As Date
'Datum des Vormonats
Datum2 = DateSerial(Year(Date), Month(Date), 1) - 1
Datum2 = DateSerial(Year(Datum2), Month(Datum2), 1)
'Datum des Vormonats im Vorjahr
Datum1 = DateSerial(Year(Datum2) - 1, Month(Datum2), 1)
Application.ScreenUpdating = False
For Each wks In ActiveWorkbook.Worksheets
Select Case wks.Name
Case "Tabelle XYZ", "Tabelle ABC"
'Diese Tabellen nicht Gruppieren
Case Else
With wks
.Columns.Ungroup
.Columns.Hidden = False
For lngSpalte = 1 To .Cells(2, .Columns.Count).End(xlToLeft).Column
Select Case lngSpalte
Case 1 To 6
'nicht gruppieren
Case 7 To 30 'G - AD
If .Cells(2, lngSpalte)  Datum2 Then
.Columns(lngSpalte).Group
End If
Case 32 To 81 'AG - CC
If .Cells(2, lngSpalte) = Datum2 Then
.Columns(lngSpalte).ColumnWidth = 16
Else
.Columns(lngSpalte).ColumnWidth = 6.43
.Columns(lngSpalte).Group
End If
Case 84 To 95 'CF-CQ
If .Cells(2, lngSpalte) = Datum1 Then
.Columns(lngSpalte).ColumnWidth = 12
Else
.Columns(lngSpalte).ColumnWidth = 6.43
.Columns(lngSpalte).Group
End If
Case 96 To 107 'CR-DC
If .Cells(2, lngSpalte) = Datum2 Then
.Columns(lngSpalte).ColumnWidth = 12
Else
.Columns(lngSpalte).ColumnWidth = 6.43
.Columns(lngSpalte).Group
End If
Case 31, 57, 82, 83 'Spalten AE,BE,CD,CE
.Columns(lngSpalte).Group
Case Else
'do nothing
End Select
Next lngSpalte
End With
End Select
wks.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
Next
Application.ScreenUpdating = True
End Sub

Anzeige
AW: VBA - Gruppierung
21.09.2011 15:33:59
e-mo
Hi Franz....
dachte du bist auf der IAA....habe schon nicht damit gerechnet, dass du mir antwortest :-)
werde das heute abend gleich mal ausprobieren.
Wie wärst auf ein Bier? :-)
Gruss,
e-mo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige