Hauteur d'une case fusionnee

bobo14

XLDnaute Nouveau
J'ai un souci avec les cases fusionnées. Je cherche à pouvoir agrandir automatiquement une case fusionnée de la hauteur prise par le texte. Le double clic sur une ligne ne fonctionne pas et je dois donc par programmation retrouver la hauteur prise par mon texte pour agrandir la case.

Comment faire ?

Je suis en train de me battre avec les hauteurs de lignes et de colonnes les points et les pixels mais probablement existe-t-il une méthode plus simple.

merci d'avance,

Boris
 

wilfried_42

XLDnaute Barbatruc
Re : Hauteur d'une case fusionnee

bonjour bobo14

c'est assez compliqué de par la mise en page du texte, taille des caracteres, nombre de lignes, ecartement entre les lignes

la formule est assez simple : taille(hauteur) * nombre de lignes dans la cellule / nombre de lignes fusionnées donne la hauteur des lignes à programmer

ps ce n'est pas pour rien que personne n'aiment les cellules fusionnées, en VBA, c'est un massacre
 

Gael

XLDnaute Barbatruc
Re : Hauteur d'une case fusionnee

Bonjour Boris, bonjour Wilfried, bonjour à tous,

C'est vrai que les cellules fusionnées sont assez souvent une source de problèmes.

En fait tu as 2 solutions:

* Supprimer la fusion de cellules et la remplacer par un "Centré sur plusieurs colonnes avec retour ligne automatique.

* Créer sur la même ligne dans un coin inutilisé une cellule de même taille que la cellule fusionnée (ou centrée sur plusieurs colonnes avec la même taille) avec retour ligne automatique et mettre comme formule =C3 (si par exemple C3 est la cellule fusionnée). La hauteur de ligne se reglera automatiquement avec la cellule distante en fonction du contenu de la cellule fusionnée.

@+

Gaël
 

Spitnolan08

XLDnaute Barbatruc
Re : Hauteur d'une case fusionnee

Bonsoir,

Je t'ai retrouvé une explication de Gorfael :
Pour des problèmes similaires, la seule solution que j'ai trouvé, c'est que quand tes cellules fusionnées changent, une macro automatique en copie le contenu dans une autre cellule (unique celle-là) située sur la même ligne, cette colonne ayant pour largeur la même que celle de tes cellules fusionnées.
Pour être plus clair, un exemple : A et B sont fusionnée
Quand la feuille change et que ça concerne A/B
Largeur de C = largeur de A + largeur de B
Je copie le contenu de A/B dans C
J'attribue la fonction hauteur automatique à la ligne
je fige la ligne à la nouvelle hauteur
J'efface C
Largeur de C = largeur de A + largeur de B

Et une macro de Pascal76 :

Tu selectionnes ta cellule et tu lances la macro
Code:
Sub Macro1()
Dim mahauteur
Dim montableau()
Dim NbreCol As Byte
Dim macell

Set macell = ActiveCell
NbreCol = macell.CurrentRegion.Count

ReDim montableau(1 To 2, 1 To NbreCol)
For i = 1 To NbreCol
    montableau(1, i) = i - 1 + macell.Column
    montableau(2, i) = Columns(i - 1 + macell.Column).ColumnWidth
    malargeur = malargeur + Columns(i - 1 + macell.Column).ColumnWidth
Next
maligne = macell.Row

macell.MergeCells = False
Columns(montableau(1, 1)).ColumnWidth = malargeur

Rows(maligne).EntireRow.AutoFit

mahauteur = Rows(maligne).RowHeight
Range(Cells(maligne, montableau(1, 1)), Cells(maligne, montableau(1, NbreCol))).MergeCells = True
For i = 1 To UBound(montableau)
    Columns(montableau(1, i)).ColumnWidth = montableau(2, i)
Next
Rows(maligne).RowHeight = mahauteur

End Sub

Cordialement

Edit : pas vu Gael...
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 049
Membres
104 012
dernier inscrit
baffyt2