Parfois, les données que vous collectez dans une feuille de calcul s’intègrent très bien dans une seule colonne. Par exemple, vous pouvez avoir une liste de noms, et ils sont tous contenus dans la colonne A de votre feuille de calcul. Lorsque vous choisissez d’imprimer la feuille de calcul, elle peut consommer un certain nombre de pages, toutes presque vierges car le côté gauche de chaque page contient un nom et le côté droit contient un espace blanc.

Dans ce type d’instance, il serait bien d’imprimer la colonne unique comme s’il s’agissait de plusieurs colonnes. De cette façon, vous pouvez utiliser plus de chaque page imprimée et moins de pages globales pour votre travail d’impression. Malheureusement, Excel ne contient aucune commande intrinsèque ou paramètre d’impression qui vous permet de reformater automatiquement vos données afin qu’elles s’impriment mieux. Il existe cependant des solutions de contournement.

Une solution de contournement souvent négligée consiste simplement à copier la liste à une seule colonne dans un document Word vierge. Si vous le collez là sous forme de texte brut, vous pouvez formater chaque page pour plusieurs colonnes et imprimer les informations.

Si vous préférez ne pas impliquer Word, vous pouvez couper et coller les informations de la première colonne dans d’autres colonnes pour donner le nombre souhaité de colonnes d’impression. Ceci, bien sûr, doit être fait dans une nouvelle feuille de calcul ou un nouveau classeur, afin que les données d’origine restent intactes. Par exemple, si vous avez 200 noms dans votre liste d’origine, vous pouvez couper 40 noms à la fois dans la liste et les coller dans les colonnes A à E d’une nouvelle feuille de calcul. L’impression de cette feuille de calcul nécessite moins de pages que l’impression de la feuille de calcul originale à une seule colonne.

Bien sûr, si vous devez souvent faire ce copier-coller, la corvée peut rapidement devenir fastidieuse. Dans ce cas, vous pouvez utiliser une macro qui fait exactement la même chose: elle découpe et découpe la liste d’origine et la colle dans un certain nombre de colonnes sur un nouveau classeur.

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

Lorsque vous exécutez cette macro, vous êtes invité à sélectionner la plage que vous souhaitez convertir, puis il vous est demandé de spécifier le nombre de colonnes que vous souhaitez reformater. Il crée une nouvelle feuille de calcul dans le classeur actuel et copie les informations de l’original dans autant de colonnes que vous avez spécifié.

Pour obtenir des ressources supplémentaires pour résoudre ce problème, consultez les sites Web suivants:

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

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (2219) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Printing_a_Single_Column_in_Multiple_Columns [Impression d’une seule colonne dans plusieurs colonnes].