XL 2013 Ajuster Automatiquement la Hauteur d'une Cellule Fusionnée en Fonction du Texte

chaelie2015

XLDnaute Accro
Bonsoit Forum
J'aimerais obtenir un code qui permette à une cellule fusionnée (par exemple, B2:D2) de s'ajuster automatiquement en fonction du texte saisi, en effectuant un retour à la ligne et en ajustant la hauteur de la cellule pour que tout le texte soit affiché.
A+
 
Solution
En effet j'avais mal compris.

Alors exécutez ce code sur le fichier joint :
VB:
Sub AjusterHauteur()
Application.ScreenUpdating = False
With ActiveCell.MergeArea
    .UnMerge 'défusionne
    .HorizontalAlignment = xlCenterAcrossSelection 'centre sur plusieurs colonnes
    .WrapText = True 'retour à la ligne
    .Rows.AutoFit 'austement hauteur
    .Merge 'refusionne
End With
End Sub
La macro fait ce que j'ai dit au post #2.

job75

XLDnaute Barbatruc
Bonjour chaelie2015, le forum,

Pour pouvoir ajuster la hauteur de ligne automatiquement les cellules ne doivent pas être fusionnées..

Sélectionnez B2: D2 et utilisez l'alignement horizontal "Centré sur plusieurs colonnes".

A+
 

chaelie2015

XLDnaute Accro
Bonjour JOB
VB:
Sub Copy_Cell()
Dim Source  As Range
Dim I       As Single
    Set Source = Worksheets("Feuil1").[B2]
    Source.Copy
    Worksheets("Feuil2").Select
    With Range(Source.Address).MergeArea
        .Select
        .PasteSpecial Paste:=xlPasteAll
        .PasteSpecial Paste:=xlPasteFormats
        .Merge
        .RowHeight = Source.RowHeight
        I = 0.5: Do
            .ColumnWidth = (Source.ColumnWidth / .Count) * I
            I = I + 0.01
        Loop Until .Width >= Source.Width
    End With
End Sub
ci rattaché un fichier,
Le code ci-dessus copie une cellule spécifique de "Feuil1" vers "Feuil2", fusionne la zone de destination, copie le format et ajuste la hauteur de la rangée et la largeur de la colonne pour correspondre à la cellule source. La boucle "Do Until" permet d'ajuster la largeur de la colonne de manière progressive jusqu'à ce qu'elle atteigne ou dépasse la largeur de la colonne source.
Voila, donc j'aimerais personnaliser ce code pour qu'il fonctionne uniquement sur une seule feuille (sans source ni destination spécifiques) et qu'il agisse sur une cellule fusionnée.
A+
 

Pièces jointes

  • Charlie mise en forme.xlsm
    16.8 KB · Affichages: 3

chaelie2015

XLDnaute Accro
Le code fourni n'ajuste pas du tout la hauteur de la ligne fusionnée.

En Feuil1 mettez la hauteur de la ligne 2 à 100 et voyez.
Re
Chez moi, ce code fonctionne correctement. 🤠
Lorsque je saisis du texte dans la cellule B2 de la feuille 1 (qui est une cellule simple), il transfère automatiquement ce texte vers la cellule B2 de la feuille 2 (qui est une cellule fusionnée couvrant les colonnes B à Z). De plus, la hauteur de cette cellule fusionnée s'ajuste automatiquement en fonction du texte que j'ai saisi.🤔
 

job75

XLDnaute Barbatruc
En effet j'avais mal compris.

Alors exécutez ce code sur le fichier joint :
VB:
Sub AjusterHauteur()
Application.ScreenUpdating = False
With ActiveCell.MergeArea
    .UnMerge 'défusionne
    .HorizontalAlignment = xlCenterAcrossSelection 'centre sur plusieurs colonnes
    .WrapText = True 'retour à la ligne
    .Rows.AutoFit 'austement hauteur
    .Merge 'refusionne
End With
End Sub
La macro fait ce que j'ai dit au post #2.
 

Pièces jointes

  • Charlie mise en forme.xlsm
    16.2 KB · Affichages: 3

chaelie2015

XLDnaute Accro
Bonjour
Je vous remercie JOB pour la réponse. J'ai incorporé ce code pour automatiser la tâche lors de la validation, cependant, cela n'a pas fonctionné correctement.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call AjusterHauteur
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 300
Membres
103 173
dernier inscrit
Cerba95