Compter le nombre de lignes dans un enveloppé cellule par vba
Comment puis-je compter le nombre de lignes dans un enveloppé de la cellule par le biais de code vba?
With Cells(1, 1)
.WrapText = False
height1 = .height
.WrapText = True
height2 = .height
End With
MsgBox height2 / height1 & " Lines"
Ce code ne fonctionnera pas depuis que j'ai mis en ligne la hauteur d'un fixe (une seule ligne est visible).
Aussi dans mon texte, pas de sauts de ligne depuis l'entrée des données par le biais de code VBA.
Merci d'avance.
- Si le texte de la cellule a des sauts de ligne, alors que Dave (Edit: brettdj) est proposée ci-dessous fonctionnent bien. Toutefois, si c'est un texte continu. alors jetez un oeil à ce fil. stackoverflow.com/questions/9889002/...
Vous devez vous connecter pour publier un commentaire.
Un autre moyen serait de soustraire la longueur de la cellule, avec des retours à la ligne (retiré de la longueur de la non désaisonnalisées cellule
Retours à la ligne (peut être remplacé par un 0 longueur de la chaîne à l'aide de la fonction de feuille de calcul
Substitute
[Mise à jour;
Not a linebreak!
]Comme Sid points dans Obtenir deux premières lignes de texte à partir d'une wraped cellule dans excel c'est délicat si l'on travaille avec des tailles de police (qui peut changer).
Je pense que le plus infaillible serait de copier le contenu de la cellule ailleurs (pour une ligne vide), et ajuster cette ligne en fonction de la cellule pour obtenir la hauteur.