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

Gruppieren

Gruppieren
31.10.2014 13:59:24
Stef26
Hallo Zusammen,
bräuchte mal Unterstützung von euch...
Ich lad mir aus SAP immer wieder SAP Stücklisten aus.
Dies sind Mehrstufig und enorm groß.
Um einen besseren Überblick in Excel zu erreichen würde ich diese gerne Gruppieren.
In der Spalte A steht die Stufe:
Beispiel (soll nur als Hinweis für die Struktur gedacht sein)
Stufe Teil
1 Kaufteil
2 Gerät
3 Blechtei 1
4 Blech
4 Niet
4 Schraube
3 Blechteil 2
4 Blech
4 Niet
4 Schraube
2 Bedienungsanweisung
2 Netzstecker
3 Netzteil
3 Anschlussleitung
1 Rechnung
Hab auch so was ähnliches schon im Netz gefunden, allerdings sind meine VBA Kenntnisse nicht ausreichend um das für meine Zwecke umzuschreiben...
Hier den Code den ich gefunden habe...
Sub Gruppieren()
Dim Zelle As Range, wks As Worksheet
Dim Stufe As String
Set wks = ActiveSheet
With wks
For Each Zelle In .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
If Zelle.Value = 1 Then
Zelle.Rows.Group
End If
Next
End With
End Sub
Hier wird allerdings nur die Stufe 1 Gruppiert. Ich möchte alle (bis zu 9 Stufen)
Gruppieren lassen, damit ich die Struktur besser überblicken kann.
Liebe Grüße
Stefan

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gruppieren
31.10.2014 15:39:42
fcs
Hallo Stefan,
hier ein Makro das über mehrere Level eine Gruppierung durchführt.
Gruß
Franz
Sub Gliederung_erstelllen()
'Gliederung für Zeilen ab Zeile 2 erstellen basierend auf Level in Spalte A
Dim wks As Worksheet
Dim G_Max As Integer
Dim intG As Integer, Zeile As Long, Zeile_L As Long
Set wks = ActiveSheet
With wks
.Rows.ClearOutline
Zeile_L = .Cells(.Rows.Count, 1).End(xlUp).Row
'Text-Zahlen im Level ggf. in Zahlen umwandeln
.Range(.Cells(2, 1), .Cells(Zeile_L, 1)).NumberFormat = "General"
For Zeile = 2 To Zeile_L
If IsNumeric(.Cells(Zeile, 1).Text) Then
.Cells(Zeile, 1).Value = CLng(.Cells(Zeile, 1).Text)
End If
Next
'max. Level ermitteln
G_Max = Application.WorksheetFunction.Max(.Range(.Cells(2, 1), .Cells(Zeile_L, 1)))
If G_Max > 8 Then G_Max = 8 'max. mögliche Stufe in Excel-Gliederung
'Gliederung einrichten
With .Outline
.AutomaticStyles = False
.SummaryRow = xlAbove
.SummaryColumn = xlLeft
End With
'Zeilen gruppieren
For intG = 1 To G_Max - 1
For Zeile = 2 To Zeile_L
If .Cells(Zeile, 1).Value > intG Then
.Rows(Zeile).Group
End If
Next
Next
End With
End Sub

Anzeige
AW: Gruppieren
31.10.2014 16:06:57
Stef26
Hallo Franz,
super duper dankeschööön. So hatte ich mir das vorgestellt.
Hab aber leider vergessen zu sagen, dass die Stufen von 0 beginnen...
Ist das ein Problem ?
Liebe Grüße
Stefan

AW: Gruppieren
31.10.2014 16:50:00
fcs
Hallo Stefan,
wenn 0 der niedriegste Level ist, dann muss der Zählter für dir intG-Schleife bei 0 stattt 1 beginnen.
für G_max muss der max--Wert von 8 auf 7 geändert werden.
Gruß
Franz

AW: Gruppieren
31.10.2014 23:51:34
Stef26
Hallo Franz,
besten Dank für deine Unterstützung.
Funktioniert einfach klasse
Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige