02.04.2021, 12:30 (Dieser Beitrag wurde zuletzt bearbeitet: 02.04.2021, 12:32 von HalloDu.)
Hallo Ihr Excel-Genies,
ich hätte da mal eine Frage und zwar:
Ich habe hier eine GuV Struktur eines Unternehmens mit mehreren Profit Centern (U1-U5), wenn man diese jeweils aufklappt, dann sieht man die darunterliegenden Konten. Nun wäre meine Frage, gibt es eine Möglichkeit, dass ich die Gruppierung so gestalte, dass ich bei Detailansicht 2 z.B. nur U1 sehe und bei Detailansicht 3 dann die darunterliegenden Konten von U1. Bei Detailansicht 4 dann lediglich U2 und Detailansicht 5 die Konten von U2.
Ist so etwas irgendwie möglich? Eventuell mit einem Makro?
Hier ein Bild davon:
[ Bild bitte so als Datei hochladen: Klick mich! ]
Sorry,nicht daran gedacht. Im Anhang ein Ausschnitt der Testdatei.
Ich möchte sozusagen, beim ersten Aufklappen nur die Dunkelgelben Felder sehen, beim zweiten Aufklappen die Hellgelben, beim Dritten die Dunkelgrünen und beim Vierten dann die Hellgrünen usw.
03.04.2021, 18:20 (Dieser Beitrag wurde zuletzt bearbeitet: 03.04.2021, 18:44 von Gast 123.)
Hallo
bitte schau mal in der Besispieldatei ob das eine akzeptable Lösung ist. Statt bei jedem Öffnen eine andere Gruppierung zu sehen kann man über den Button die Gruppe mit einer InputBox selbst waehlen. Es reicht die Zahl anzugeben. Erfolgt keine Auswahl werden immer alle Zeilen auf Sichtbar gesetzt!
Würde mich freuen wenn dir diese Lösung gefaellt ... Schlicht und simpel, aber hoffendlich Praxisgerecht!
mfg Gast 123 Nachtrag mir fiel nachher ein das ich auch in den "U1" Zeilen den Text ausblende. Hier eine verbesserte Lösung wo man alle Text sieht
Vielen Dank für deine Lösung, das sieht schon mal sehr gut aus!
Ich habe jedoch noch ein kleines Problem bei der Anwendung im Originalfile. Dort heißen die verschiedenen Profitcenter, welche wir hier gruppieren nämlich nicht U1,U2 usw. sondern haben ganz unterschiedliche Namen (z.B.: Hans, Lisa und Franz).
Nun erkennt der Befehl leider nicht, ab wann das nächste Profitcenter beginnt, da sie nicht den gemeinsamen Nenner das "U" haben. Somit müsste man wahrscheinlich diesen Teil hier anpassen:
If Left(Cells(j, 2), 1) = "U" Then ok = ""
Leider habe ich absolut keine Idee, wie. Kannst du mir hier eventuell weiterhelfen? Wäre dir sehr dankbar!
ich habe den Code etwas umgemoddelt, habe ihn aber nicht getestet. Würde mich freuen wenn es damit auf Anhieb klappt. Im Prinzip schaue ich bei Zeilen mit Fettdruck als Überschrift auf den Namen der eine Zeile tiefer steht und vergleiche ihn mit der InputBox.
mfg Gast 123
Code:
Sub Gruppierung_einrichten() Dim Eingabe As Variant, ok As String 'bei Eingabe immer alle Zeilen einblenden!! Cells.EntireRow.Hidden = False
Eingabe = InputBox("Bitte die Gruppierung angeben - (Zahl reicht)") If Eingabe = Empty Then Exit Sub
lz1 = Cells(Rows.Count, 2).End(xlUp).Row If IsNumeric(Eingabe) Then Eingabe = "U" & Eingabe
On Error Resume Next For j = 7 To lz1 'Überschrift immer eingeblendet lassen! If Cells(j, 2).Font.Bold = True Then If Cells(j + 1, 2) <> Eingabe Then _ ok = Empty Else ok = "ok" ElseIf Cells(j, 2).Font.Bold = False Then 'Bereich "U" + Eingabe prüfen ob Texzt vorliegt If ok = Empty Then Cells(j, 2).EntireRow.Hidden = True ElseIf Cells(j, 2) = "" And Cells(j, 3) = "" Then Cells(j, 2).EntireRow.Hidden = True End If End If Next j End Sub
diesmal sollte es klappen, denn dieses Makro habe ich zur Vorsicht in der Beispieldatei getestet. Benötigt wird der "Unterstrich" beim Namen, um das Namensfeld von normalem Text unterscheiden zu können. Ohne Unterstrich klappt es Nicht! Würde mich freuen wenn der Code jetzt Okay ist.
mfg Gast 123
Code:
Sub Gruppierung_einrichten() Dim Eingabe As Variant, ok As String 'bei Eingabe immer alle Zeilen einblenden!! Cells.EntireRow.Hidden = False lz1 = Cells(Rows.Count, 2).End(xlUp).Row
Eingabe = InputBox("Bitte den Namen angeben") If Eingabe = Empty Then Exit Sub
On Error Resume Next For j = 7 To lz1 'Bei Unterstrich Namen prüfen! If Cells(j, 2).Font.Underline <> xlNone Then If Cells(j, 2) = Eingabe Then _ ok = "ok" Else ok = Empty End If 'Überschrift immer eingeblendet lassen! If Cells(j, 2).Font.Bold = True Then 'Ausblenden Auswertung bei Eöpty ElseIf ok = Empty Then Cells(j, 2).EntireRow.Hidden = True 'Ausblenden von leeren Zeilen ElseIf Cells(j, 2) & Cells(j, 3) = "" Then Cells(j, 2).EntireRow.Hidden = True End If Next j End Sub
Folgende(r) 2 Nutzer sagen Danke an Gast 123 für diesen Beitrag:2 Nutzer sagen Danke an Gast 123 für diesen Beitrag 28 • Rudi'S, HalloDu