Élargissement proportionnel de plusieurs colonnes (Microsoft Excel)
Keith a une feuille de calcul qui utilise les colonnes A à H. Il aimerait pouvoir élargir chaque colonne d’un montant proportionnel. Par exemple, s’il sélectionne les 8 colonnes, ce serait formidable s’il pouvait saisir le bord droit de la colonne H et comme il traîne vers la droite, toutes les colonnes seraient espacées proportionnellement. Il se demande s’il existe un moyen de faire ce type d’élargissement de colonne.
Pour mieux comprendre de quoi parle Keith, peut-être qu’un exemple s’impose. La manière normale d’ajuster la largeur de colonne à l’aide de la souris consiste à sélectionner les colonnes, puis à faire glisser un séparateur entre les en-têtes de colonne vers la droite ou la gauche. Supposons que la largeur de la colonne A est 5, la colonne B est 10 et la colonne C est 15. Si vous sélectionnez A: C et faites glisser le diviseur sur le côté droit de l’en-tête de la colonne C à 20, c’est une augmentation de 33% pour colonne C. Idéalement, les colonnes A et B seraient également redimensionnées de 33% (comme Keith le souhaite), mais elles sont toutes les deux définies sur une largeur de 20 pour correspondre à la colonne C.
En outre, maintenir une touche de modification (Ctrl, Alt ou Maj) enfoncée pendant que vous faites glisser la souris n’a aucun effet; les largeurs de colonne sont toujours égales les unes aux autres. Si vous essayez de cliquer avec le bouton droit et de faire glisser, cela ne fait rien sauf afficher un menu contextuel. Ainsi, d’après tous les tests que nous avons pu faire, il n’y a aucun moyen d’ajuster proportionnellement les largeurs de colonne dans Excel que nous avons pu découvrir.
Le moyen le plus simple est peut-être d’utiliser une macro pour ajuster les largeurs de colonne.
Voici un bon exemple d’une telle approche.
Sub ProportionalWidth() Dim C As Range Dim sRaw As String Dim sTemp As String Dim P As Single sRaw = InputBox("Increase width by how what % (0 to 100)?") P = Val(sRaw) If P >= 0 And P <= 100 Then P = 1 + (P / 100) sTemp = "" For Each C In Selection.Columns sTemp = sTemp & "Column " & ColumnLetter(C.Column) sTemp = sTemp & ": " & C.ColumnWidth & " ==> " C.ColumnWidth = C.ColumnWidth * P sTemp = sTemp & C.ColumnWidth & vbCrLf Next C MsgBox sTemp Else MsgBox "Out of range; no adjustment made" End If End Sub
Function ColumnLetter(Col As Long) As String Dim Arr Arr = Split(Cells(1, Col).Address(True, False), "$") ColumnLetter = Arr(0) End Function
Il existe en fait deux macros dans cet exemple. Le premier (ProportionalWidth) modifie la largeur des colonnes que vous avez sélectionnées. Le second (ColumnLetter) est utilisé pour convertir un numéro de colonne numérique en lettres de colonne. Il n’est utilisé que pour constituer le rapport (en sTemp) des largeurs avant et après des colonnes.
Lorsque vous sélectionnez des colonnes et exécutez la macro, elle vous demande de quelle largeur vous souhaitez élargir ces colonnes. Entrez un nombre compris entre 0 et 100, cliquez sur OK et les colonnes sont élargies de ce pourcentage. De plus, vous verrez une boîte de message indiquant la largeur d’origine de chaque colonne et la largeur ajustée.
Notez que cette macro élargit uniquement les colonnes. Si vous souhaitez l’utiliser pour rendre les colonnes proportionnellement plus étroites, vous devez le modifier pour, peut-être, gérer les valeurs négatives.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (13429) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.