Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Abfrage hat User Gruppierung benutz?

Forumthread: Abfrage hat User Gruppierung benutz?

Abfrage hat User Gruppierung benutz?
mas
Hallo zusammen,
ich habe ein Tabellenblatt in dem Zeilen gruppiert sind.
Innerhalb einer Gruppe werden nun manche Zeilen ausgeblendet.
Benutzt man dann die "Gruppenbuttons" + / - bzw 1,2... auf der linken Seite, dann werden, wenn die Gruppe angezeigt wird, ALLE darin enthaltenen Zeilen sichtbar.
Kann man irgendwie abfragen, ob ein User hier die Gruppierung zu, bzw. aufmacht? Irgendein Worksheet-Event? Welches?
In diesem Fall könnte ich dann per Makro dafür sorgen, dass nachdem Einblenden einer Gruppe bestimmte Zeilen wieder ausgeblendet werden.
Viele Grüße
mas
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Abfrage hat User Gruppierung benutz?
14.07.2011 12:18:02
Martin
Hallo Mas,
es gibt dafür kein Worksheet-Event. Den Status, ob bestimmte Zeilen/Spalten ausgeblendet sind, _ kannst du über

Columns(5).Hidden
(Spalte 5 = Spalte E) und

Rows(4).Hidden
(Zeile 4) abfragen. Du fragst also ab, ob eine Spalte/Zeile ausgeblendet ist oder nicht.
Viele Grüße
Martin
Anzeige
AW: Abfrage hat User Gruppierung benutz?
14.07.2011 13:39:39
mas
Hallo Martin,
den Status einer Zeile / Spalte abfragen ist nicht das Problem.
Ärgerlich ist nur, dass es für die Gruppierung kein Event gibt, um zu sehen, ob ein User die Funktion nutzt.
Dann muss ich halt mein Makro auf Verdacht öfter laufen lassen, damit die unerwünschten Zeilen immer weg sind
mas
Anzeige
AW: Abfrage hat User Gruppierung benutz?
14.07.2011 13:58:53
Martin
Hallo Mas,
das könntest du mit
Application.OnTime Now + TimeValue("00:00:05"), "MakroName"
realisieren, indem du das Makro in einem von dir festgelegten Intervall (in meinem Beispiel nur 5 Sekunden) "rekursiv" laufen lässt (...also dass es sich selbst immer wieder aufruft). Du solltest aber sicherstellen, dass dieser Aufruf beim Schließen der Arbeitsmappe (am besten auch schon beim Verlassen des Arbeitsblattes) widerrufen wird.
Viele Grüße
Martin
Anzeige
;
Anzeige

Infobox / Tutorial

Abfrage von Gruppenstatus in Excel


Schritt-für-Schritt-Anleitung

Um den Status von Gruppen in Excel abzufragen und gegebenenfalls bestimmte Zeilen wieder auszublenden, kannst du die folgenden Schritte befolgen:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)".
    • Wähle Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Sub CheckGroupVisibility()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Sheets("DeinTabellenblattName")
    
       ' Überprüfe, ob eine bestimmte Zeile ausgeblendet ist
       If ws.Rows(4).Hidden Then
           ' Wenn ausgeblendet, mache etwas
           ws.Rows(4).Hidden = True
       Else
           ws.Rows(4).Hidden = False
       End If
    End Sub
  4. Automatisiere das Makro:

    • Um das Makro regelmäßig auszuführen, füge diesen Code am Ende deines Moduls hinzu:
      Sub StartTimer()
      Application.OnTime Now + TimeValue("00:00:05"), "CheckGroupVisibility"
      End Sub
  5. Starte das Timer-Makro:

    • Führe das StartTimer-Makro aus, um die Überprüfung alle 5 Sekunden zu beginnen.

Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt

    • Lösung: Stelle sicher, dass du das Makro mit F5 im VBA-Editor startest und dass der Timer korrekt eingerichtet ist.
  • Fehler: Zeilen werden nicht wie erwartet ausgeblendet

    • Lösung: Überprüfe den Code auf Schreibfehler und stelle sicher, dass du die korrekten Zeilen- oder Spaltennummern verwendest.

Alternative Methoden

Eine andere Möglichkeit, um die Sichtbarkeit von Gruppen zu überprüfen, könnte die Verwendung von Worksheet_Change-Ereignissen sein. Dies wäre jedoch nur sinnvoll, wenn du genau weißt, wann Änderungen an der Tabelle vorgenommen werden.

Private Sub Worksheet_Change(ByVal Target As Range)
    Call CheckGroupVisibility
End Sub

Praktische Beispiele

Wenn du in einer Excel-Tabelle mit gruppierten Zeilen arbeitest, kannst du das oben stehende Makro so anpassen, dass es mehrere Zeilen überprüft oder unterschiedliche Aktionen ausführt, je nachdem, ob eine Zeile sichtbar oder ausgeblendet ist.

Beispiel:

If ws.Rows(4).Hidden Then
    ws.Rows(5).Hidden = True
Else
    ws.Rows(5).Hidden = False
End If

Tipps für Profis

  • Vermeide endlose Schleifen: Achte darauf, das Application.OnTime-Makro richtig zu beenden, wenn du das Arbeitsblatt verlässt oder die Arbeitsmappe schließt.
  • Nutze die Application.ScreenUpdating-Eigenschaft, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren, damit die Leistung verbessert wird:
    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True

FAQ: Häufige Fragen

1. Gibt es eine Möglichkeit, die Gruppierung in Excel zu überwachen? Ja, du kannst den Status der Zeilen über den VBA-Code abfragen, jedoch gibt es kein direktes Worksheet-Event für Gruppierungen.

2. Wie oft sollte das Makro ausgeführt werden? Es hängt von deinen Anforderungen ab. Ein Intervall von 5 Sekunden ist oft ausreichend, um Änderungen zu erkennen, ohne die Leistung zu beeinträchtigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige