Schichtplan in getrennter Tabelle neu anordnen
Excel, alle Versionen
Die Aufgabe: In einer dreispaltigen Tabelle sind die Namen der Mitarbeiter vermerkt. Das Ziel soll es sein, in einer neuen Tabelle alle Namen direkt untereinander, ohne Leerzeilen bzw. Leerzellen dazwischen nach Früh‑, Spät- und Nachtschicht geordnet aufzulisten. Hinter jedem Namen soll dann in der Ziel-Tabelle noch in Klammern ein Kürzel für die Schichtbezeichnung eingefügt werden. Hier die Ursprungs-Tabelle mit den Namen:
Prinzipiell führen viele Wege nach Rom, sprich zum Ziel. Zwei davon stelle ich Ihnen zwei in dieser verLinkten Datei vor. Beide Möglichkeiten enthalten Makros/VBA. Zuvor ein kurzer Aufriss, wie es auch ohne Programmierung gehen würde:
- Spalte A Zeile 1 bis zum Ende in ein neues Tabellenblatt Spalte A kopieren.
- Spalte B Zeile 1 bis zum Ende in dieses neue Tabellenblatt Spalte D kopieren.
- Spalte C Zeile 1 bis zum Ende in dieses neue Tabellenblatt Spalte G kopieren.
- (Ab hier geschieht alles in dem neuen Tabellenblatt)
- Markieren Sie die komplette Spalte A.
- Nutzen Sie den AutoFilter, um alle Zellen außer den leeren Zellen anzuzeigen.
- In die erste Namenszelle (hier: B2) nun diese Formel: =A2 &
"
(F)"
- Die Formel bis zum letzten Namen aus Spalte A herunter kopieren.
- Den AutoFilter wieder ausschalten.
- Bei der Früh- und Spätschicht gleichermaßen vorgehen.
- Die Spalten A; D; G nacheinander und einzeln ab Zeile 2 bis zum letzten Eintrag kopieren und immer untereinander in Spalte J als Wert einfügen.
- Anschließend die komplette Spalte J markieren und per AutoFilter alles außer Leerzellen anzeigen lassen.
- Die hier angezeigten Namen kopieren und dann den AutoFilter wieder aufheben.
- Auf K1 Klicken und den Inhalt der Zwischenablage einfügen (beispielsweise per StrgV).
- Alle Spalten bis Spalte K können nun gelöscht werden. Alternativ haben Sie die letzte Einfüge-Aktion gleich in einem neuen Blatt durchgeführt, dann entfällt natürlich das Löschen.
- Jetzt liegen die Namen so vor, wie es sein soll.
Mir ist das einfach zu viel Umstand. Und wenn das öfter geschehen soll, dann artet das in richtige Arbeit aus. 😈 Darum ist ein Makro vielfach die bessere Lösung. In dieser Datei finden Sie die beiden Makro-Prozeduren. Einige Hinweise zu den verschiedenen Versionen: Die erste Sub ist etwas transparenter gestaltet und für Einsteiger gewiss etwas übersichtlicher und leichter korrigierbar. Zugegeben, es würde noch einfacher, noch (scheinbar) klarer gehen. Da würden dann die drei Spalten nacheinander abgearbeitet und jeweils für Quelle und Ziel die letzte belegte bzw. erste freie Zeile bestimmt. Davon gibt es so viele Beispiele im Netz, das möchte ich derzeit nicht auch noch „antun”. Sollten Sie jedoch verstärktes Interesse daran haben, einfach als Kommentar in den Blog und/oder eine Mail schreiben.
Die Prozedur Zusammenfassung2() ist insbesondere bei größeren Datenmengen erheblich schneller. Das ist durch das mehrdimensionale Array bedingt. Außerdem ist in dem Tabellenblatt (Tabelle3) Spalte A mit einer bedingten Formatierung versehen, damit die Schichten noch prägnanter erkennbar sind:
Das war’s!
Hinweis: Wenn Sie in Sachen VBA bzw. Makros unerfahren oder noch nicht so ganz „sattelfest” sind, dann finden Sie an dieser Stelle in meinem Blog eine Anleitung, die Ihnen bei den ersten Schritten hilfreich zur Seite steht.
[NachObenLetzte Verweis=„DL: Schichtplan neu ordnen”]