Wenn Sie häufig Excel verwenden, wissen Sie, dass Sie möglicherweise ziemlich große Arbeitsmappen von Kollegen erhalten. Oft ist es wünschenswert, die Arbeitsmappe aufzuschlüsseln, damit sich jedes Arbeitsblatt in einer eigenen Arbeitsmappe befindet. Dies kann zwar manuell erfolgen, der Vorgang wird jedoch schnell mühsam, wenn Sie viel zu tun haben.

Diese Art der sich wiederholenden Arbeit ist für ein Makro selbstverständlich. Das folgende Makro mit dem Namen BreakItUp erstellt einzelne Arbeitsmappendateien basierend auf den Arbeitsblättern in der aktuellen Arbeitsmappe. Wenn die aktuelle Arbeitsmappe 25 Arbeitsblätter enthält, werden beim Ausführen dieses Makros 25 einzelne Excel-Arbeitsmappendateien erstellt. Jede Arbeitsmappe verfügt über ein einzelnes Arbeitsblatt, und der Name der Arbeitsmappe entspricht dem des Arbeitsblatts.

Sub BreakItUp()

Dim sht As Worksheet     Dim NFName As String     Const WBPath = "C:\"



For Each sht In ActiveWorkbook.Worksheets         sht.Copy         NFName = WBPath & sht.Name & ".xls"

ActiveWorkbook.SaveAs FileName:=NFName, _             FileFormat:=xlNormal, CreateBackup:=False         ActiveWindow.Close     Next End Sub

Das BreakItUp-Makro speichert die neuen Arbeitsmappen im Stammverzeichnis auf dem Laufwerk C:. Wenn Sie möchten, dass Ihre Arbeitsmappen an einem anderen Ort gespeichert werden, können Sie einfach die Zeile ändern, in der die WBPath-Konstante erstellt wird.

Sie sollten auch wissen, dass es relativ einfach ist, dieses Makro zum Absturz zu bringen. Zum Beispiel, wenn Sie ein Zeichen in einem Arbeitsblattnamen verwenden, das nicht „legal“ ist

Bei einem Dateinamen stoppt das Makro grob, wenn versucht wird, die Datei zu erstellen. Natürlich können Sie leicht Änderungen am Makro vornehmen, um nach solchen unzulässigen Zeichen zu suchen und diese zu ersetzen.

Eine weitere mögliche Gefahr für das Makro besteht darin, dass es nicht mehr ausgeführt wird, wenn bereits eine Datei mit demselben Namen wie ein Arbeitsblatt vorhanden ist. Angenommen, Sie haben ein Arbeitsblatt mit dem Namen MySheet1. Wenn sich bereits eine Datei mit dem Namen MySheet1.xls auf der Festplatte befindet, wird das Makro angehalten, wenn versucht wird, die Datei zu überschreiben. Sie können dies umgehen, indem Sie sicherstellen, dass in dem Verzeichnis, in dem die Arbeitsmappen gespeichert werden, keine Dateinamenkonflikte vorliegen.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (2230) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: