Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Emile63, enregistrer la hauteur des lignes.

1 réponse
Avatar
MichD
Bonjour,

A ) Un clic droit sur l'onglet de la feuille
B ) La commande "Visualiser le code du menu contextuel.
C ) Copie la macro suivante dans la page blanche

La hauteur de chacune des lignes de la feuille va s'adapter
automatiquement selon le contenu des cellules.

'---------------------------
Sub Hauteur_Des_Lignnes()
Me.UsedRange.EntireRow.AutoFit
End Sub
'---------------------------

MichD

1 réponse

Avatar
Emile63
Le Friday, July 22, 2022 Í  7:12:58 PM UTC+2, MichD a écrit :
Bonjour,
A ) Un clic droit sur l'onglet de la feuille
B ) La commande "Visualiser le code du menu contextuel.
C ) Copie la macro suivante dans la page blanche
La hauteur de chacune des lignes de la feuille va s'adapter
automatiquement selon le contenu des cellules.
'---------------------------
Sub Hauteur_Des_Lignnes()
Me.UsedRange.EntireRow.AutoFit
End Sub
'---------------------------
MichD

Bonjour MichD,
Merci pour ton aide.
Je connais autofit, mais j'ai besoin de paramétrer la hauteur de chaque ligne, pour prendre en compte la mise en page de chaque page, et pour le coup, Autofit ne me convient pas..
Bien que ça prenne un certain temps, je préfère avoir la main sur la hauteur de chaque ligne afin que "la présentation visuelle" des conditions de mon fichier soient similaires au document existant, ça me permet d'être au plus près.
Le problème c'est la répétitivité et le temps que ça prend, Í  chaque changement de langue, d'o͹ l'idée d'en faire une petite sauvegarde, réutilisable et sur laquelle je puisse faire (éventuellement) des petits ajustements, quand je reprend les données.
---------------------------
Sub HauteursLignes()
Dim MesLignes%, i%, X%, RowHeightcm#, Rng As Range, Cell As Range
'
Feuil1.Select
MesLignes = Range("A4:A" & Range("A" & Rows.Count).End(xlUp).Row).Count 'ligne et Nb de lignes Í  mémoriser
X = 3 * [CodeLangue].Value - 1 ' (1 Í  10)
Feuil1.Select
Feuil1.Range("B4", Cells(Rows.Count, "B").End(xlUp)).Select ' Sélection de la zone variable en hauteur de ligne
For Each Cell In Selection
i = i + 1
RowHeightcm = Round((Cell.Rows.RowHeight * 0.0352778), 2)
With Feuil2 'Ajoute une entrée dans la feuille de sauvegarde
.Range(Cells((i + 2), (X - 1)), Cells((i + 2), (X))).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
.Cells((X + 1), (i + 1)) = RowHeightcm
.Cells((X + 1), ((X - 1))) = i
End With
Next
'Je souhaite ensuite trier les données relevés en nombre croissant de ligne "LigneFrm" descendant en fonction de la ligne "codeLangue" qui Í  été sélectionnée.
'mais je crains que je n'utilise pas la bonne méthode (car c'est un peu lent), je pense a Dictionnary, un Array, ou ListObjects, mais je ne sais pas les utiliser correctement et ne sais pas non plus laquelle serrait la plus adaptée Í  mon projet.
End Sub
---------------------------
Très bonne journée,
Emile