Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Ajustement automatique de la largeur d'une colonne

crocrocro

XLDnaute Impliqué
Bonjour,
je n'arrive pas à effectuer l'ajustement automatique de la largeur d'une colonne dans ce cas particulier :
Dans la même cellule j'ai un texte avec des passages à la ligne suivante par Alt + Entrée (ou VbLf en VBA).
Ce qui positionne automatiquement la cellule en Mode "Renvoyer à la ligne automatiquement".
Avec Format -> Ajuster la Largeur des Colonnes, du fait du "Renvoyer à la ligne automatiquement", il n'y a pas d'ajustement de la largeur de la colonne.
Il en est de même en VBA avec des instructions comme Range("A1").Columns.AutoFit , Range("A1").EntireColumn.AutoFit,Range("A:A").AutoFit.
Par exemple dans le fichier joint en cellule A1
Quelqu'un aurait-il une solution ? Avec ou sans VBA
 

Pièces jointes

  • AjusterLargeurColonne.xlsx
    9.1 KB · Affichages: 9
Solution
@Phil69970 , as-tu lu mon post 3 ? J'ai dû faire l'EDIT après ta lecture, désolé !
Ma conclusion :
si avant l'autofit, la colonne est plus petite que la taille après autofit, l'autofit n'a aucun effet.
Il faudrait donc forcer la largeur de la colonne à une taille XXL (ce que j'ai fait avec le code ci-dessous) avant de faire l'Autofit.
C'est quand même tordu



VB:
CelluleO.ColumnWidth = 255 ' le maximum
    CelluleO.Columns.AutoFit
    Application.ScreenUpdating = True
    Set CelluleI = Nothing
    Set CelluleO = Nothing
End Sub

crocrocro

XLDnaute Impliqué
@Phil69970, très bizarre, çà ne marche pas 8 fois sur 10 en fonction de ce que j'ai fait avant.
C'est en essayant de le mettre en place sur le fichier que j'ai donné en pj sur la discussion Copie texte de word vers Excel dans le post 10 en ayant lancé plusieurs fois la macro par le bouton (actuellement, il n'y a a pas d'autofit de la colonne B2 ou cellule CelluleO.
Et de nouveaux essais en complétant la fin de Sub comme ceci n'a rien donné.
VB:
.....
    Application.ScreenUpdating = True
    'CelluleO.Columns.AutoFit
    Range("B1").Columns.AutoFit
    Set CelluleI = Nothing
    Set CelluleO = Nothing
End Sub
Si tu veux bien faire des essais de ton côté avec le fichier de l'autre discussion ... Merci
[EDIT] j'ai un début d'explication sur le pourquoi cela ne marche pas à tous les coups :
si avant l'autofit, la colonne est plus petite que la taille après autofit, l'autofit n'a aucun effet.
Il faudrait donc forcer la largeur de la colonne à une taille XXL avant de faire l'Autofit.
C'est quand même tordu
 
Dernière édition:

crocrocro

XLDnaute Impliqué
@Phil69970 , as-tu lu mon post 3 ? J'ai dû faire l'EDIT après ta lecture, désolé !
Ma conclusion :
si avant l'autofit, la colonne est plus petite que la taille après autofit, l'autofit n'a aucun effet.
Il faudrait donc forcer la largeur de la colonne à une taille XXL (ce que j'ai fait avec le code ci-dessous) avant de faire l'Autofit.
C'est quand même tordu



VB:
CelluleO.ColumnWidth = 255 ' le maximum
    CelluleO.Columns.AutoFit
    Application.ScreenUpdating = True
    Set CelluleI = Nothing
    Set CelluleO = Nothing
End Sub
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…