fullback71
Goto Top

Excel 2007 Gruppierungen Makro

Liebe Community Mitglieder,

folgendes Problem habe ich bei Excel 2007:

Ich habe eine Datei, in der ich zentral Personal verwalte. Auf dem ersten Arbeitsblatt werden alle Mitarbeiter einer Abteilung eingetragen, die u.a. mit Eintritts- und Austrittsdatum versehen werden. In den folgenden 12 Arbeitsblättern sind jeweils die Mitarbeiter der Monate Januar bis Dezember aufgelistet, die sich aus den Stammdaten des ersten Arbeitsblatt ergeben. Die Auflistung der Mitarbeiter in den 12 Monats-Arbeitsblättern sind also verlinkt mit dem ersten Blatt. In den 12 Blättern werden von Führungskräften u.a. Produktivität etc. eingetragen.

Auf dem ersten Blatt sind also alle 100 Mitarbeiter aufgeführt, danach habe ich dreißig weitere Zeilen freigelassen, damit man etwaige neue Mitarbeiter mit ihren Daten anlegen kann. Diese 30 Zeilen sind gruppiert. Auf den übrigen 12 Blättern sind ebenfalls die dreißig Zeilen gruppiert, damit die Führungskräfte diese Zeilen nicht sehen und es übersichtlicher ist.

Wenn ich nun im ersten Blatt einen neuen Mitarbeiter anlege, muss ich diese Zeile aus der Gruppierung lösen. Selbiges muss ich bei den anderen 12 Blättern auch machen.

Kann man ein Makro programmieren, in dem die Gruppierung in Abhängigkeit vom Zellinhalt möglich ist. --> Bspw. ist das Feld Nachname gefüllt, dann löse die Zeile aus der Gruppierung?

Ich habe in keinen Forum eine derartige Fragestellung gefunden und bin gespannt, ob jemand eine Antwort weißface-smile Vielen Dank im Voraus!!!

MfG

Fb

Content-ID: 179740

Url: https://administrator.de/contentid/179740

Ausgedruckt am: 26.11.2024 um 14:11 Uhr

bastla
bastla 29.01.2012 um 20:54:28 Uhr
Goto Top
Hallo Fullback71!
Kann man ein Makro programmieren
Würde man vielleicht sogar - wenn es konkrete Informationen über die Struktur gäbe (ab welcher Zeile, in welcher Spalte muss geprüft werden, wie heißen die Blätter) ...

[Edit] Anyhow - kannst Du ja selbst eintragen ...
Sub Gruppierung_aufheben()
Tabellen = Array("Gesamt", "Jan", "Feb", ..., "Dez") 'Tabellennamen; mit der Übersichtstabelle beginnend  
Spalte = "B" 'wenn diese Spalte nicht leer ist, Zeile aus Gruppierung entfernen  
AbZeile = 101 'Zeile, ab welcher die Gruppierung (ursprünglich) beginnt  
BisZeile = 200 'nur zur Sicherheit, falls keine Gruppierung (mehr) vorhanden ist  

Zeile = AbZeile
Do Until Sheets(Tabellen(0)).Rows(Zeile).Summary Or Zeile > BisZeile
    If Sheets(Tabellen(0)).Cells(Zeile, Spalte).Value <> "" Then  
        For Each Tabelle In Tabellen
            With Sheets(Tabelle).Rows(Zeile)
                If .OutlineLevel > 1 Then
                    .Ungroup
                    .Hidden = False
                End If
            End With
        Next
    End If
    Zeile = Zeile + 1
Loop
End Sub
[Edit2] Zeile 8 noch exakter formuliert [/Edit2]
[Edit]

Grüße
bastla