XL 2016 VBA ajuster hauteur des lignes

  • Initiateur de la discussion Initiateur de la discussion cardi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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.
 
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..
 
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

Dernière édition:
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
552
Réponses
3
Affichages
298
Retour