Gruppierte Excel-Dimensionsliste aus einer Word-Quelldatei mittels VBA erstellen | Teil 2 – Programmierung

Im zweiten und abschliessenden Teil dieser Beitragsserie sehen wir uns die Funktionsweise des Makros zur automatischen Gruppierung und Ebeneneinrückung im Detail an.

Der VBA-Code ist sehr einfach aufgebaut:

 

Sub Automatische_Ebenen_Gruppierung()

Dim RowMin As Variant
Dim RowCount As Integer
Dim RowNo As Integer
Dim LevelCurrent As Integer
Dim LevelMax As Variant
Dim ColumnIndent As Variant
Dim ColumnLevelinfo As Variant

RowCount = ActiveSheet.UsedRange.Rows.Count

On Error Resume Next

RowMin = Application.InputBox("Wählen Sie die erste zu gruppierende Zeile aus:",
"Automatische Gruppierung starten", Type:=1): If RowMin = "" Then Exit Sub

LevelMax = Application.InputBox("Wählen Sie die maximale vorkommende Ebenenanzahl:",
"Automatische Gruppierung starten", Type:=1): If LevelMax = "" Then Exit Sub

ColumnLevelinfo = Application.InputBox("Wählen Sie die Spalte mit der Ebenen-Information:",
"Automatische Gruppierung starten", Type:=2): If ColumnLevelinfo = "" Then Exit Sub

ColumnIndent = Application.InputBox("Wählen Sie die Spalte mit den einzurückenden Ebenen-Texten:",
"Automatische Gruppierung starten", Type:=2): If ColumnIndent = "" Then Exit Sub

For LevelCurrent = LevelMax To 2 Step -1

    For RowNo = RowMin To RowCount

        If Range(ColumnLevelinfo & RowNo) >= LevelCurrent Then
            Rows(RowNo & ":" & RowNo).Group
            Range(ColumnIndent & RowNo).IndentLevel = Range(ColumnLevelinfo & RowNo)
        End If

    Next RowNo

Next LevelCurrent

End Sub

 

Nach der Abfrage der vier Eingabeparameter werden in der äusseren Schleife die – in unserem Fall vier – Ebenen von der tiefsten bis zur zweiten (=vorletzten) Ebene durchlaufen. In der inneren Schleife werden alle Zeilen des relevanten Bereichs durchlaufen und so lange gruppiert bis die Ebeneninformation einer Zeile kleiner ist als die aktuelle Ebene aus der äusseren Schleife die gerade durchlaufen wird. Auf diese Weise werden die Gruppierungen und das Einrücken bewerkstelligt.

Share on linkedin
Share on twitter
Share on facebook

Leave a Replay

Über den Autor

Blog auf Feedly abonnieren

Kategorien

Verwandte Beiträge

Kennen Sie schon data1.io?

data1.io ist unsere innovative Cloud Anwendung zum Sammeln, Aggregieren und Teilen von Geschäftsdaten innerhalb und außerhalb des Unternehmens.

Kostenlos zum Newsletter anmelden

Ihre Anfrage

Schicken Sie uns Ihre Fragen und Anregungen!