Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 VBA ajuster hauteur des lignes

cardi

XLDnaute Junior
Bonjour,

J'utilise un macro pour ajuster la hauteur des lignes d'une feuille:

VB:
Dim Ligne As Range
    Application.ScreenUpdating = False
    With ActiveSheet
        For Each Ligne In .Rows("5:200")
            Ligne.AutoFit
            Ligne.WrapText = True
            Ligne.RowHeight = Application.Max(Ligne.RowHeight, 22.5)
        Next
    End With
    Application.ScreenUpdating = True

Par contre, j'aimerai que cela sélectionne seulement les colonnes de A à H, car actuellement cela prend en compte toutes les colonnes.

Que dois-je ajouter à mon code?

Merci d'avance,

Cardi
 

cardi

XLDnaute Junior
Bonjour,
Je ne veux pas avoir des hauteurs de lignes différentes, je souhaite juste prendre en compte la hauteur ajustée des lignes des colonnes A à H pour l'appliquer sur toute la ligne.

En faite, par exemple, en cellule B1, la hauteur parfaite serait 25, mais dans la cellule G1, la hauteur parfaite serait 50.

Quand je fais ajuster avec ma macro, cella va prendre en compte la hauteur de 50 pour toute la ligne 1, mais si je dis qu'il faut prendre en compte seulement mes colonnes de A à H, cela me donnera une hauteur de ligne de 25. C'est cela que je souhaite.
 

vgendron

XLDnaute Barbatruc
juste une idée: et si tu fais un autofit sur la range au lieu des lignes?
un truc comme ca.. peut etre..?

for each cellule in .range("A5:H200")
cellule.rowHeight.autofit
hauteurfinale=worksheetfunction.max(HauteurFinale,cellule.rowHeight)
next cellule

.rows(5:200).rowheight=hauteurfinale


Je ne sais pas si ca peut fonctionner..
 

cardi

XLDnaute Junior
Voici la macro complète

VB:
Option Explicit
Sub Hauteur()
Dim Ligne As Range
    Application.ScreenUpdating = False
    With ActiveSheet
        For Each Ligne In .Rows("5:200")
            Ligne.AutoFit
            Ligne.WrapText = True
            Ligne.RowHeight = Application.Max(Ligne.RowHeight, 22.5)
        Next
    End With
    Application.ScreenUpdating = True
End Sub

Et voici un fichier pour comprendre, la cellule L5 étant sur plusieurs lignes, du coup la hauteur de la ligne 5 est grande.
 

Pièces jointes

  • cardi(1).xlsx
    10.7 KB · Affichages: 4
Dernière édition:

zebanx

XLDnaute Accro
Bonjour Cardi, Vgendron

Un essai avec une boucle


VB:
Sub mef_RowHeight()
Dim i&, derligne&, dercol&, ta()

derligne = Cells(Rows.Count, 1).End(3).Row
dercol = 9 'Cells(1, Columns.Count).End(1).Column
ta = Range(Cells(1, 1), Cells(derligne, dercol)).Value

Application.ScreenUpdating = False

For i = 1 To UBound(ta)
Rows(i).AutoFit
ta(i, 1) = Cells(i, 1).RowHeight
If ta(i, 1) > 30 Then ta(i, 1) = 30
Rows(i).RowHeight = ta(i, 1)
Next i

Application.ScreenUpdating = True

End Sub
 

Pièces jointes

  • rowheight.xlsm
    16.2 KB · Affichages: 13

Discussions similaires

Réponses
4
Affichages
468
Réponses
3
Affichages
204
Réponses
3
Affichages
828
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…