Nur sichtbare (gefilterte) Bereiche per Hand kopieren
Für Übungszwecke finden Sie in dieser Datei die alphabetische Liste aller Mitglieder des 18. Deutschen Bundestages, Stand 04.05.2015 mit der jeweiligen Partei-Zugehörigkeit. Die Aufgabe ist nun, für jede Fraktion ein neues Arbeitsblatt zu erstellen und die entsprechenden Mitglieder dort hinein zu kopieren. Das Kopieren soll per Hand geschehen, nicht per VBA/Makro.
Grundlegende Überlegungen und Vorbereitungen
Grundsätzlich stellt sich ja erst einmal die Frage, wie kann ich feststellen, wer zu welcher Fraktion gehört. Das ist rasch beantwortet, denn hinter jedem Namen steht die jeweilige Fraktion vermerkt. Also muss nur in irgend einer Form dafür gesorgt werden, dass die Namen entsprechend aufgeteilt und dann in ein anderes Arbeitsblatt kopiert werden.
Bei 642 Namen wäre es recht mühselig, in Spalte B einzeln per Hand die jeweilige Fraktion einzutragen. Da gibt es einen einfacheren Weg, nämlich eine Formel zu verwenden. Das ginge beispielsweise mit solch einer Excel-Formel:
=WENN(RECHTS(A2; 3)="CSU"; "CDU/CSU"; WENN(RECHTS(A2; 3)="SPD"; "SPD"; WENN(RECHTS(A2; 3)="nen"; "Bündnis 90/Die Grünen"; WENN(RECHTS(A2; 3)="nke";"Die Linke"; "Fehler"))))
Diese Formel gehört in eine einzige Zeile, auch wenn sie hier und eventuell auch in Ihrem Eingabebereich in mehreren Zeilen dargestellt wird. – Prinzipiell wird hier verglichen, ob die rechten drei Zeichen der Zelle mit den rechten drei Zeichen eines Fraktionsnamens übereinstimmen und dann der komplette Fraktionsname in Spalte B geschrieben. Und für den Fall, dass sich beispielsweise ein Schreibfehler oder Ähnliches eingeschlichen hat, wird auch noch der Rückgabewert „Fehler” eingebunden.
Wenn Sie diese Formel (beginnend in B2) nach unten kopieren, werden Sie in jeder Zelle den entsprechenden stehen haben. Damit sind die Vorbereitungen abgeschlossen.
Fraktionen separieren
Um nun festzustellen, für welche Fraktionen ein neues Blatt angelegt werden muss, bietet sich folgendes Vorgehen an:
- Daten | Filtern und dann per Klick auf das Dreieck rechts die AutoFilter-Funktionalität aktivieren:
Sie erkennen rasch, welche Fraktionen durch die Funktion erstellt worden sind. Sie sehen aber auch, dass mindestens 1 Zeile mit dem Wert „Fehler” versehen ist. Das sollte natürlich korrigiert werden. Aber Stop, da Sie solche Änderungen nie an der Original-Datei vornehmen sollten, erstellen Sie bitte erst einmal eine Kopie des Arbeitsblattes. Oder als Alternative: Machen Sie einen Rechtsklick auf die Registerkarte des Blattes und blenden das Tabellenblatt Alle Parteien (Formel) ein (erst einmal nur dieses). Dann haben Sie eine Kopie und können auch einmal Fehler machen. Die richtige Formel ist dort auch schon integriert.
Lassen Sie sich idealerweise nur diese Fehler-Einträge herausfiltern und schauen Sie nach, warum diese fehlerhaft sind. Aus meiner Sicht wäre nun der einfachste Weg, wenn Sie die wenigen Zellen per Hand korrigieren. In Spalte A den Text markieren, Kopieren und in Spalte B den alten Wert durch Einfügen überschreiben. Dann bleiben noch 4 Fraktionen über, wo Sie für jede ein neues Blatt erstellen.
Wenn es wesentlich mehr als diese 11 Einträge gewesen wären oder sich solch eine Aufgabe ständig wiederholt, dann kann die Sache auch automatisiert werden. Die oben gezeigte Formel ließe sich zwar dahingehend verändern, dass auch diese Fehler abgefangen werden, aber wehe, da muss dann aus welchen Gründen auch immer eine Änderung vorgenommen werden. Dann raucht der Kopf ganz gewaltig, denn von Übersichtlichkeit kann dann keine Rede mehr sein. Da bietet sich eine UDF an, eine benutzerdefinierte Funktion, welche für Anwender ganz schlank daher kommt. Blenden Sie gerne das Blatt Alle Parteien (VBA) ein und schauen Sie sich das einmal an.Der dazu gehörige Code liegt im Modul1 und ist frei änderbar. Und wie schon angedeutet, hier werden in dem Datenbestand keine Fehlermeldungen auftauchen. Das geschähe nur dann, wenn beispielsweise jemand aus einer Partei austritt und als fraktionsloser Abgeordneter in der Liste geführt wird. Dann müssten die Case-Anweisungen entsprechend ergänzt werden.
Mit welchem der Arbeitsblätter Sie nun weiter machen, das überlasse ich Ihnen. In jedem Fall sollten vor dem entscheidenden Schritt die Arbeitsblätter der vier Fraktionen erstellt und mit einem „sprechenden” Namen versehen worden sein. – Für jede Fraktion gilt nun das gleiche Vorgehen:
- Schalten Sie erforderlichenfalls den AutoFilter aus, damit alle Einträge zu sehen sind.
- Den AutoFilter wieder einschalten, (Alles auswählen) deaktivieren und bei der gewünschten Fraktion ein Häkchen setzen.
- Spalte A: Klick in die erste, sichtbare Zeile unterhalb der Überschrift. Das muss nicht Zeile 2 sein!
- StrgShift↓ (Cursor nach unten), um alles bis zum letzten sichtbaren Eintrag zu markieren.
- StrgC oder auf anderem Wege Kopieren.
- Wechseln zum entsprechenden Arbeitsblatt und anschließend StrgV oder nach Belieben Einfügen ausführen.
Für die nächste Fraktion führen Sie den Vorgang gleichermaßen durch. Damit ist die Aufgabe erfüllt. Sie erkennen, dass das Ganze auch komplett ohne Makros machbar ist (wenn Sie die Fehler von Hand ausgleichen oder mit einer Monster-Formel 😉 verwenden). Selbstredend lässt sich das Ganze auch vollständig automatisieren, aber das ist hier nicht das Thema.
[NachObenLetzte Verweis=„ML: Gefilterte Bereiche per Hand kopieren”]