Partager via

Ajustement automatique de la ligne

Anonyme
2022-11-28T13:30:48+00:00

Bonjour,

j'ai fusionné plusieurs colonnes, je souhaitais ajuster la hauteur de ligne en fonction du texte, j'ai trouvé mon bonheur sur le site avec cette macro

Sub test()
Dim X As Double

Application.ScreenUpdating = False
If TypeName(Selection) = "Range" Then
    With Selection
        .MergeCells = False
        .WrapText = False
        .WrapText = True
        .HorizontalAlignment = xlHAlignCenterAcrossSelection
        .WrapText = True
        .EntireRow.AutoFit
        X = .Height
        .MergeCells = True
        .EntireRow.RowHeight = X
        .HorizontalAlignment = xlHAlignLeft
    End With
End If
Application.ScreenUpdating = False
End Sub

Le seul petit problème c'est qu'il faut exécuter la macro en étant dans la cellule concernée, serait il possible que la macro s'exécute sur toutes les cellules ? Ou encore mieux en codant pour définir à l'avance toutes les cellules concernées, par exemple pour moi ca serait : A17+A21+A25

Microsoft 365 et Office | Excel | Autres | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

6 réponses

  1. DanielCo 107.7K Points de réputation
    2022-11-28T15:54:02+00:00

    Pour moi, les deux macros donnent le même résultat ?

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2022-11-28T15:08:00+00:00

    Bonjour,

    Cela fonctionne, mais ça laisse des espaces beaucoup trop gros par rapport à l'autre macro. Savez-vous pourquoi ?

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2022-11-28T15:07:26+00:00

    A moi non, mais le tableau est destinée à plusieurs utilisateurs, je préfère leur faciliter la tache ☺

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. DanielCo 107.7K Points de réputation
    2022-11-28T14:46:58+00:00

    Bonjour,

    Sub test()
    Dim X As Double, C As Range, resadr As String
    Application.ScreenUpdating = False
    If TypeName(Selection) = "Range" Then
    For Each C In Range("A17,A21,A25")
    With C
    resadr = C.MergeArea.Address
    .MergeCells = False
    .WrapText = False
    .WrapText = True
    .HorizontalAlignment = xlHAlignCenterAcrossSelection
    .WrapText = True
    .EntireRow.AutoFit
    X = .Height
    Range(resadr).MergeCells = True
    .EntireRow.RowHeight = X
    .HorizontalAlignment = xlHAlignLeft
    End With
    Next C
    End If
    Application.ScreenUpdating = False
    End Sub

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Anonyme
    2022-11-28T14:32:01+00:00

    Il suffit de sélectionner les cellules voulues au préalable (tenir la touche CTRL et cliquer sur les cellules A17, A21 et A25). Est-ce que ça te pose des problèmes pour l'exécution ?

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire