PDA

Vollständige Version anzeigen : Gruppieren


PeterPan89
14.07.2014, 17:29
Hallo zusammen,

ich habe folgende Frage.
Wie kann ich Werte in einer Spalte auslesen und dann gleiche Werte gruppieren?

Ich habe folgenden Code, möchte aber vermeiden, dass ich alle Werte die es in dieser Spalte gibt händisch eintragen muss, da sich diese auch bei Datenaktualisierungen verändern können. Könnte jetzt diese Prozedur mit allen Werten also nicht nur Zelleninhalt XXXXXX wiederholen, aber möchte, dass mein Code automatisch alle gleichen Werte in der SPalte D (column 4) zusammengruppiert.

SPäter möchte ich dann gleiche Werte gruppieren, wobei ich in einer anderen Spalte die fünf größten Zahlenwerte auswerten möchte und nicht mitgruppieren.

Vielen Dank für Eure Hilfe

Gruß PeterPan


With wks
For Each Zelle In .Range(.Cells(7, 4), .Cells(.Rows.Count, 4).End(xlUp))
If Zelle.Value = "XXXXXX" Then
Zelle.Rows.Group
End If
Next
End With

Mc Santa
14.07.2014, 22:41
Hallo,

ich verstehe den Sinn davon nicht ganz, aber vermutlich kannst du es so lösen:
With wks
For Each Zelle In .Range(.Cells(7, 4), .Cells(.Rows.Count, 4).End(xlUp))
If Zelle.Value = Zelle.Offset(1).Value Then
Zelle.Rows.Group
End If
Next
End With

Funktioniert es wie gewünscht?
VG

PeterPan89
16.07.2014, 08:37
Vielen Dank funktioniert sehr gut.

Gibt es jetzt eine Möglichkeit Zeilen vom Gruppieren zu exkludieren?

Genau genommen sollen immer alle mit gleichem Wert in Spalte D gruppiert werden ohne die jeweiligen fünf Zeilen die in Spalte I die fünf größten Werte einer Kategorie (SPalte D) aufweisen.

VG PeterPan

PeterPan89
18.07.2014, 12:40
Hat jemand eine Idee?

Mc Santa
18.07.2014, 12:47
Hallo,

hast du eine Beispieldatei mit Vorher/Nachher, damit ich sicher bin, zu wissen, was du meinst?

VG

PeterPan89
18.07.2014, 15:17
Hi,

hier hätte ich eine vorher und nachher Bsp. Datei. Gruppieren immer der ganzen Zeile, weil da noch mehr Informationen vorhanden sind.

VG

PeterPan

Mc Santa
18.07.2014, 15:27
Hallo,

probiere es mal wie folgt:
Sortiere erst nach Zahl, dann nach Typ (ist im Beispiel so) und führe dann folgendes aus:
With wks
For Each zelle In .Range(.Cells(7, 4), .Cells(.Rows.Count, 4).End(xlUp))
If zelle = zelle.Offset(-1) And zelle = zelle.Offset(-2) And zelle = zelle.Offset(-3) And zelle = zelle.Offset(-4) And zelle = zelle.Offset(-5) Then
zelle.Rows.Group
End If
Next
End With
wks.Outline.ShowLevels RowLevels:=1

Hilft dir das?
VG

PeterPan89
18.07.2014, 16:17
Super!!!

Klappt genau wie ich mir das vorgestellt habe.