[VBA/Excel] Hauteur de ligne
Résolu/Fermé
grotone
Messages postés
14
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
21 juillet 2009
-
16 juin 2008 à 16:11
D.O.C. - 15 oct. 2012 à 15:30
D.O.C. - 15 oct. 2012 à 15:30
A voir également:
- Vba hauteur de ligne
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Aller à la ligne excel - Guide
- Ligne occupée - Forum SFR
- Longueur largeur hauteur ✓ - Forum Loisirs / Divertissements
3 réponses
Il y a une astuce très simple pour ajuster la hauteur d'une ligne contenant des cellules fusionnées, en gardant l'alignement du texte à gauche :
Voici mon code, sachant que la plage de cellule s'étend de la colonne C à la colonne K.
'Ajuste automatiquement la hauteur de ligne
Function ligne_hauteur(ByVal lngRow As Long)
Dim strRange As String
Dim dblHeight As Double
Application.ScreenUpdating = False
'Range en cours de modification
strRange = "C" & lngRow & ":K" & lngRow
'On enlève la fusion et on centre sur plusieurs cellules
'pour récupérer la vraie hauteur de la ligne
With Range(strRange)
.MergeCells = False
.Locked = False
.HorizontalAlignment = xlCenterAcrossSelection
End With
'Hauteur réelle de la ligne
Rows(lngRow & ":" & lngRow).EntireRow.AutoFit
dblHeight = Rows(lngRow & ":" & lngRow).RowHeight
'On refusionne et on centre è gauche
With Range(strRange)
.MergeCells = True
.HorizontalAlignment = xlLeft
End With
'Ajustement de la hauteur réelle de la ligne
Rows(lngRow & ":" & lngRow).RowHeight = dblHeight
'Protection et refresh de l'écran
Application.ScreenUpdating = True
End Function
Et voilou !!! :)
Henri.
Voici mon code, sachant que la plage de cellule s'étend de la colonne C à la colonne K.
'Ajuste automatiquement la hauteur de ligne
Function ligne_hauteur(ByVal lngRow As Long)
Dim strRange As String
Dim dblHeight As Double
Application.ScreenUpdating = False
'Range en cours de modification
strRange = "C" & lngRow & ":K" & lngRow
'On enlève la fusion et on centre sur plusieurs cellules
'pour récupérer la vraie hauteur de la ligne
With Range(strRange)
.MergeCells = False
.Locked = False
.HorizontalAlignment = xlCenterAcrossSelection
End With
'Hauteur réelle de la ligne
Rows(lngRow & ":" & lngRow).EntireRow.AutoFit
dblHeight = Rows(lngRow & ":" & lngRow).RowHeight
'On refusionne et on centre è gauche
With Range(strRange)
.MergeCells = True
.HorizontalAlignment = xlLeft
End With
'Ajustement de la hauteur réelle de la ligne
Rows(lngRow & ":" & lngRow).RowHeight = dblHeight
'Protection et refresh de l'écran
Application.ScreenUpdating = True
End Function
Et voilou !!! :)
Henri.
27 mai 2011 à 15:29
15 oct. 2012 à 15:30
il semble que ce principe reste le plus rapide de ce que j'ai trouvé pour l'instant.
avec du code simple et lisible
Olivier-D.O.C.