Etirer automatiquement les lignes

Bonjour,

J'aurais encore besoin d'un petit coup de main si vous me le permettez, chers experts

Dans le fichier ci-dessous, je souhaiterais que les lignes s'auto-étire de la taille du contenu des cellules.

J'ai réussi a le faire fonctionner, mais uniquement lorsque les cellules ne sont pas fusionnées.

Or, j'ai besoin qu'elle soit fusionnées, car je dois aligné le contenu à gauche. Sans les fusionnées, je peux bien sûr les faire apparaître dans plusieurs cellules quand même en faisant "centrer sur plusieurs colonnes", mais du coup le texte n'est pas aligné a gauche.elqu'

Quelqu'un aurait-il une solution a m'apporté svp ?

Bonsoir,

ci-joint une proposition basée sur ceci :

une BD = une donnée sur une colonne et sur une ligne => j'ai supprimé deux colonnes qui "visuellement" et "fonctionnellement" sur le fichier joint ne servaient à rien si ce n'est empêcher le "autofit" de la colonne Texte...

@ bientôt

LouReeD

Merci pour ta réponse.

Cependant j'ai besoin que ces cellules soient fusionnées, comme dit dans mon message précédant.

Le fichier présent est un fichier teste, que j'adapterais sur un fichier final. Que ce soit visuellement et fonctionnellement inutile actuellement est donc normal.

Ok

et le fichier original ne serait il pas plus facile à modifier pour passer à une seul colonne ?

@ bientôt

LouReeD

Le fichier original n'est pas modifiable non :/

C'est pour cela que je cherche une solution pour réussir à étirer automatiquement les lignes malgré les fusions de cellules.

Si jamais ce n'est pas possible, je resterais en alignement centré sur plusieurs colonnes, même si cela ne me convient pas.

Bonjour,

Sub test()
    Dim larg(1 To 3) As Single, largeur As Single, lig As Long, i As Long
    For i = 1 To 3
        larg(i) = Columns(4 + i).ColumnWidth
        largeur = largeur + Columns(4 + i).ColumnWidth
    Next i
    Application.ScreenUpdating = False
    Columns(5).ColumnWidth = largeur + 1.64
    For lig = 11 To 34
        If Cells(lig, 5) <> "" Then
            Cells(lig, 5).Resize(, 3).UnMerge
            Rows(lig).EntireRow.AutoFit
            Cells(lig, 5).Resize(, 3).Merge
        End If
    Next lig
    Columns(5).ColumnWidth = larg(1)
End Sub

Il faut accepter l'éventualité de petits ratés, des caractères restants encore masqués.

Sauf a accepter une ligne supplémentaire de temps à autre en baissant le +1.64

Impossible de faire exact de part la mesure d'une colonne en vba : Une unité de largeur de colonne est égale à la largeur d'un caractère du style Normal. Débrouille-toi avec ça...

eric

eric

Cela me convient très bien !

Merci beaucoup Eriic.

Rechercher des sujets similaires à "etirer automatiquement lignes"