Ajuster automatiquement la hauteur des lignes au contenu de cellules fusionnées

william69

XLDnaute Nouveau
Bonjour,
Je cherche, pour mise en forme pour impression de ma feuille, à ajuster automatiquement la hauteur d'une ligne au contenu d'une cellule fusionnée.

Pour info, la plus importante des cellules à ajuster dépasse les 1000 caractères (texte), elle est issue d'une macro et d'une fonction RechercheV et en plus j'ai déjà des éléments indispensables en haut de document sur plusieurs colonnes. Bref, tout cela m'empêche d'utiliser des cellules non fusionnées.

J'ai essayé Format de cellules => Centré sur plusieurs colonnes, mais le rendu est absolument affreux.

J'ai bien trouvé une piste interéssante sur le forum, mais le lien donné sur le fil ne fonctionne pas. Voici le fil en question:
https://www.excel-downloads.com/threads/code-vba-ajuster-hauteur-de-ligne.15551/

Merci de votre attention.

Cdlt,
Will
 

william69

XLDnaute Nouveau
Re : Ajuster automatiquement la hauteur des lignes au contenu de cellules fusionnées

Bonjour,

il semble que ce sujet n'inspire personne ... lol

La nuit portant conseil, j'ai pensé à une éventuelle piste:
Une fois la selection réalisée sur l'usf, l'utilisateur actionne un bouton affecté à une macro qui, pour chaque contenu (il y en a 50 possibles et qui ne changeront jamais) ajuste la hauteur de ligne.

Je traduis, espèrant être plus clair:
Je sais que le résultat de ma recherche "x" nécessite une hauteur de ligne de "y" pixels. Donc la macro reconnaît le résultat et ajuste la hauteur de ligne en fonction. Les paramètres de hauteur sont déterminés à l'avance (soit dans un tableau sur feuil, soit directement dans la macro).

SI contenu cellule = x, alors hauteur ligne = y, donc ajuster hauteur.

Cela inspire-t-il quelqun ?

Cdlt
Will
 

job75

XLDnaute Barbatruc
Re : Ajuster automatiquement la hauteur des lignes au contenu de cellules fusionnées

Bonjour william69, hoerwind,

Cette macro ajuste la hauteur des lignes même si les cellules sont fusionnées :

Code:
Sub AjusteEnHauteur()
For Each cel In ActiveSheet.UsedRange
  If cel <> "" Then
    Set m = cel.MergeArea
    m.UnMerge
    m.WrapText = True 'renvoie à la ligne
    m.HorizontalAlignment = xlCenterAcrossSelection
    m.Rows.AutoFit
    m.Merge
    m.HorizontalAlignment = xlGeneral 'facultatif bien sûr
  End If
Next
End Sub

Edit : ajouté le test If

A+
 

Pièces jointes

  • Ajustement cellule fusionnée.xls
    36.5 KB · Affichages: 1 035
Dernière édition:

william69

XLDnaute Nouveau
Re : Ajuster automatiquement la hauteur des lignes au contenu de cellules fusionnées

Re, voici enfin la solution a mon probleme.
Ci-dessous le code que j'utilise. Il démarre a partir d'un usf.

Private Sub Generer_alerte_Click()
Unload Me
'cellules fusionnées a mettre en forme Range("Feuil!B18:I18,B21:I21,B24:I24,B27:I27,B30:I30,B33:I33,B19:I19,B22:I22,B25:I25,B28:I28,B31:I31,B34:I34,C20:I20,C23:I23,C26:I26,C29:I29,C32:I32,C35:I35,B55:E55,B57:E57,B59:E59,B61:E61,B63:E63,B65:E65").Select

With Selection
.HorizontalAlignment = xlCenterAcrossSelection 'centré sur plsrs colonnes
.VerticalAlignment = xlTop 'alignement vertical
.WrapText = True 'ça je sais pas ce que c'est, un truc de format
.AddIndent = False 'ça non plus
.IndentLevel = 0 'ça non plus
.ShrinkToFit = False 'ça non plus
.ReadingOrder = xlContext 'ça non plus
.MergeCells = False 'fusion des cellules=non
End With
Selection.Merge True 'fusion simple des cell selectionnées
With Selection
.HorizontalAlignment = xlLeft 'alignement gauche (important)
.VerticalAlignment = xlTop
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Load USF
USF.Show
End Sub

Et ça marche d'enfer. Cela sous-entend que dès le départ, mes cellules ne sont pas fusionnées. J'ai créer de plus une autre macro pour remettre au format initial pour une prochaine utilisation.
Le code peut être simplifié, j'en convient.

Merci de votre aide et a bientôt.

Cdlt,
WIll
 

djina88

XLDnaute Nouveau
Re : Ajuster automatiquement la hauteur des lignes au contenu de cellules fusionnées

Bonjour,

j'ai le meme problème que vous, je souhaite ajuster la hauteur de mes cellules mais je n'y arrive pas en raison des cellules fussionnées. Pouvez vous m'indiquer un exemple de la dernière macro que vous avez insérée? Car je n'arrive pas à l'ajuster à mon fichier.
D'avance merci.
Cdlt
Yann
 

Dicas

XLDnaute Junior
Re : Ajuster automatiquement la hauteur des lignes au contenu de cellules fusionnées

job75 !! Bonjour !!!
J'ai fouiller pour trouver une solution au Pb de hauteur automatique de cellules fusionnées avec ce code qui date de janvier 2010 et qui me plait bien :

Sub AjusteEnHauteur()
For Each cel In ActiveSheet.UsedRange
If cel <> "" Then
Set m = cel.MergeArea
m.UnMerge
m.WrapText = True 'renvoie à la ligne
m.HorizontalAlignment = xlCenterAcrossSelection
m.Rows.AutoFit
m.Merge
m.HorizontalAlignment = xlGeneral 'facultatif bien sûr
End If
Next
End Sub


Pourtant, il me reste un détail que je ne sais pas régler pour éviter que des cellules de "TITRES" ne voient leur forma dénaturé ?!
Je voudrai que ce code ne s'applique qu'à deux (ou x ) plages d'une (ou x) colonne de mon document. Dans mon cas: "E4:E23" et "E26:E40".

Quelle syntaxe utiliser pour l'application restreinte de ce code ??
Merci pour tout ce qui me permettra de progresser !!!
 

Discussions similaires

Statistiques des forums

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