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
 

vgendron

XLDnaute Barbatruc
bonjour..
impossible d'avoir des hauteurs de ligne differentes sur la meme ligne
une ligne est une ligne...
 

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
Cela ne fonctionne pas, dans la ligne "for each cellule in .range("A5:H200") ", pour le mot "cellule", cela indique Variable non définie.
 

vgendron

XLDnaute Barbatruc
si on pouvait avoir ta macro complète ainsi qu'un bout de ton fichier en exemple, ca aiderait à y voir plus clair
 

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.
 

Fichiers joints

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
 

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas