macro hauteur de ligne / contenu

usul

XLDnaute Occasionnel
bonjour
voilà mon pb:
dans de nombreux tableaux j'ai une colonne (disons colonne D) contenant des infos diverses
la largeur de colonne doit rester fixe
mais je souhaiterai que la hauteur de la ligne s'adapte en fonction du nb de lignes dans les cellules de cette colonne

j'utilise Alt+Entrée pour aller à la ligne à l'intérieur de la cellule

je m'explique :
en D2 le contenu de la cellule tient sur une ligne
en D3 le contenu est sur 2 lignes
en D4 le contenu est sur 3 lignes

il faudrait que la hauteur de la ligne 2 fasse 18
ligne 3 fasse 25
ligne 4 fasse 33

j'utilise toujours la même police mais la taille peut varier

merci
 

CBernardT

XLDnaute Barbatruc
Bonjour Usul,

une macro qui ajuste les cellules au texte qu'elles contiennent :

Sub Ajuster()
With ActiveSheet.Cells
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = True
.EntireRow.AutoFit
End With
End Sub

Cordialement

CBernardT
 

Riddick

XLDnaute Occasionnel
Re a tous les deux

Si tu veux pas 'fusiller tes alignements' tu as cas mettre

Sub Ajuster()
With ActiveSheet.Cells
.WrapText = True
.EntireRow.AutoFit
End With
End Sub

Mais je ne comprends pas ce que tu veux....
Tu n'as pas besoin de decider la formule dimensionne tes cases a la largeur necessaire pour voir le contenu entier.

A moi que tu veuilles mettre tes 3 lignes a une hauteur precise et differente dans ce cas la je te conseille de le faire manuellement
 

usul

XLDnaute Occasionnel
justement je souhaite des hauteurs précises (celles indiquées plus haut)
et le faire manuellement quand tu as des centaines de lignes : dur dur !

les cellules de la colonne D contiennent 1 à 3 lignes

merci
 

Riddick

XLDnaute Occasionnel
Re a tous
et a ceux qui viennent du fil
Exprimer 'Chaine de caractères quelconque'


Voilà j'ai pas reussi mais je pensais a un truc comme ca:
D'ailleurs je ne sais pas si c'est possible

* remplacant l'expression qui représente n'importe quelle chaine de caracteres.... Et que je ne connais pas

Sub Largeur-de-cellule()
Dim ligne As Integer
ligne = 1

Do Until ActiveSheet.Cells(ligne, 4) = ''
'Ou bien ligne=100 ou peu importe selon le programme
If ActiveSheet.Cells(ligne, 4)= * & chr(10) & * & chr(10)&* then
Rows(ligne).Select
Selection.RowHeight = 33
Else
If ActiveSheet.Cells(ligne, 4)= * & chr(10) & * & chr(10)&* then
Rows(ligne).Select
Selection.RowHeight = 25
Else
If ActiveSheet.Cells(ligne, 4)= * & chr(10) & * & chr(10)&* then
Rows(ligne).Select
Selection.RowHeight = 18
End If
End If
End If
ligne = ligne + 1
End Sub

Voilà en esperant que ca donne des idées a des gens plus doué que ma modeste personne....
A vous de jouer B)
 

Discussions similaires

Statistiques des forums

Discussions
312 332
Messages
2 087 362
Membres
103 528
dernier inscrit
maro