Manchmal passen die Daten, die Sie in einem Arbeitsblatt sammeln, sehr gut in eine einzelne Spalte. Beispielsweise haben Sie möglicherweise eine Liste mit Namen, die alle in Spalte A Ihres Arbeitsblatts enthalten sind. Wenn Sie das Arbeitsblatt drucken, kann es einige Seiten belegen, die fast leer sind, da die linke Seite jeder Seite einen Namen und die rechte Seite Leerzeichen enthält.

In diesem Fall wäre es schön, die einzelne Spalte so zu drucken, als wären es mehrere Spalten. Auf diese Weise können Sie mehr von jeder gedruckten Seite und weniger Gesamtseiten für Ihren Druckauftrag verwenden. Leider enthält Excel keine intrinsischen Befehle oder Druckeinstellungen, mit denen Sie Ihre Daten automatisch neu formatieren können, damit sie besser gedruckt werden. Es gibt jedoch Problemumgehungen.

Eine häufig übersehene Problemumgehung besteht darin, die einspaltige Liste in ein leeres Word-Dokument zu kopieren. Wenn Sie es dort als einfachen Text einfügen, können Sie jede Seite für mehrere Spalten formatieren und die Informationen tatsächlich drucken.

Wenn Sie Word nicht einbeziehen möchten, können Sie Informationen aus der ersten Spalte ausschneiden und in andere Spalten einfügen, um die gewünschte Anzahl von Druckspalten zu erhalten. Dies sollte natürlich in einem neuen Arbeitsblatt oder einer neuen Arbeitsmappe erfolgen, damit die Originaldaten ungestört bleiben. Wenn Ihre ursprüngliche Liste beispielsweise 200 Namen enthält, können Sie jeweils 40 Namen aus der Liste ausschneiden und in die Spalten A bis E eines neuen Arbeitsblatts einfügen. Das Drucken dieses Arbeitsblatts erfordert weniger Seiten als das Drucken des ursprünglichen einspaltigen Arbeitsblatts.

Wenn Sie dieses Ausschneiden und Einfügen häufig durchführen müssen, kann die Arbeit natürlich schnell mühsam werden. In diesem Fall können Sie ein Makro verwenden, das genau dasselbe tut: Es schneidet und würfelt die ursprüngliche Liste und fügt sie in eine Reihe von Spalten in einer neuen Arbeitsmappe ein.

Sub SingleToMultiColumn()

Dim rng As Range     Dim iCols As Integer     Dim lRows As Long     Dim iCol As Integer     Dim lRow As Long     Dim lRowSource As Long     Dim x As Long     Dim wks As Worksheet

Set rng = Application.InputBox _       (prompt:="Select the range to convert", _       Type:=8)

iCols = InputBox("How many columns do you want?")

lRowSource = rng.Rows.Count     lRows = lRowSource / iCols     If lRows * iCols <> lRowSource Then lRows = lRows + 1

Set wks = Worksheets.Add     lRow = 1     x = 1     For iCol = 1 To iCols         Do While x <= lRows And lRow <= lRowSource             Cells(x, iCol) = rng.Cells(lRow, 1)

x = x + 1             lRow = lRow + 1         Loop         x = 1     Next End Sub

Wenn Sie dieses Makro ausführen, werden Sie aufgefordert, den Bereich auszuwählen, den Sie konvertieren möchten, und anschließend die Anzahl der Spalten anzugeben, in die es neu formatiert werden soll. Es erstellt ein neues Arbeitsblatt in der aktuellen Arbeitsmappe und kopiert Informationen aus dem Original in so viele Spalten, wie Sie angegeben haben.

Weitere Ressourcen zur Lösung dieses Problems finden Sie auf den folgenden Websites:

http://www.ozgrid.com/VBA/MiscVBA.htm#Print http://dmcritchie.mvps.org/excel/snakecol.htm

_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 (8239) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: