A propos de "Autofit"

Bonjour,

De retour sur le forum sur une nouvelle identité, car j'ai perdu mes identifiants.

Je voudrais vous soumettre ce petit problème de mise en forme qui va sans doute vous faire sourire, mais moi, je ne trouve pas de solution.

J'ai une Sub qui manipule des données sur une feuille, là il n'y a pas de problèmes.

A la fin, comme les données de la colonne "F:F" peuvent varier (texte), je souhaite ajuster sa largeur pour avoir une présentation plus propre.

J'utilise

.Columns("F:F").AutoFit

Lorsque la colonne est "trop large", elle s'ajuste bien au texte le plus long, MAIS, lorsqu'elle est "trop étroite", rien ne se passe.

J'ai cru à une mise en forme qui trainerait et qui m'aurait échappé, mais le problème demeure sur une page vierge...

J'espère être clair.... Auriez vous une solution ?

PS: J'ai trouvé comme solution (code ci dessous) de lui donner une largeur vraiment trop grande, et ensuite Autofit fonctionne bien et ajuste. Mais je pense qu'il y a plus "élégant"....

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Worksheets(1)
'______________________
'
.Columns("F:F").ColumnWidth = 200
.Columns("F:F").AutoFit
End With
End Sub

Merci

Bonjour

Et si, en doublant la largeur de la colonne F (juste à remplacer Sheet1 ci-dessous)

une à voir et à adapter

*2 double la largeur, etc.

With Worksheets("Sheet1").Columns("F")
 .ColumnWidth = .ColumnWidth * 2
End With

crdlt,

André

Andre13 a écrit :

Bonjour

Et si, en doublant la largeur de la colonne F (juste à remplacer Sheet1 ci-dessous)

une à voir et à adapter

*2 double la largeur, etc.

With Worksheets("Sheet1").Columns("F")
 .ColumnWidth = .ColumnWidth * 2
End With

crdlt,

André

Merci André,

Je veux que la largeur de colonne "colle" à la longueur du texte qui y est inscrit.

Des fois il est court des fois plus long (raisonnablement).

Une largeur fixe ne me convient pas.

re,

cela doit ressemblé à cela

à re-tester

'Exemple de F1 à F200 de la feuille 1

Worksheets("Sheet1").Range("F1:F200").Columns.AutoFit

Ou bien la colonne F entière :

.Columns("F:F").Column.AutoFit

Bonjour,

peux-tu mettre un fichier exemple qui illustre ton problème ?

Les solutions que vous me proposez ne fonctionnent pas...

Voici 2 fichiers simples.

Le fichier "marchepas":

Lorsque j'élargis la colonne F, et que j'active une autre colonne, la colonne F s'auto règle sur le texte le plus long.

Lorsque je réduis la colonne F, et que j'active une autre colonne, la colonne F ne s'auto règle pas sur le texte le plus long.

Le fichier "marchebien":

Après avoir supprimé le contenu de la colonne G, si j'élargis, ou si je réduis la colonne "F", elle s'auto règle dans les deux cas sur le texte le plus long.

12marchepas.xlsm (15.61 Ko)
4marchebien.xlsm (15.37 Ko)

Bonjour toutes et tous

Le fichier marchepas.xxx la hauteur des lignes n'étaient pas toutes à 15,75 c'est pour cela que cela ne fonctionner pas bien

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)

With Worksheets(1)
    .Columns("F:F").AutoFit
    .Columns("G:G").AutoFit
End With

End Sub

crdlt,

André

Andre13 a écrit :

Bonjour toutes et tous

Le fichier marchepas.xxx la hauteur des lignes n'étaient pas toutes à 15,75 c'est pour cela que cela ne fonctionner pas bien

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Worksheets(1)
    .Columns("F:F").AutoFit
    .Columns("G:G").AutoFit
End With
End Sub

crdlt,

André

Excellent ! Et merci André.

Je pensais qu'on pouvait n'agir que sur UNE colonne. Erreur !

J'ai donc adapté à toutes les colonnes utilisées, et maintenant, c'est joli !

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Worksheets(1)
    .Columns("A:Z").AutoFit
'    .Columns("G:G").AutoFit
End With
End Sub
Rechercher des sujets similaires à "propos autofit"