Pour chaque génération d'Excel dont je me souvienne (y compris 2010, que j'utilise maintenant), les fonctionnalités "Taille automatique des lignes" d'Excel ne permettent parfois pas de redimensionner automatiquement une ligne lorsque la cellule contient du texte enveloppé. Quand cela fonctionne correctement, tout le texte est révélé et il n'y a pas d'espace supplémentaire sous la dernière ligne de texte. Lorsqu'il échoue, il ajoute un espace supplémentaire sous le texte. Pour aggraver les choses, ce que vous voyez n’est pas toujours ce que vous obtenez, c’est-à-dire que le texte qui apparaît bien à l’écran est coupé lorsqu’il est imprimé. Vous obtenez également des tailles différentes selon que vous effectuez un zoom avant ou arrière ou à la taille réelle.
Cas de test simple:
Pourquoi y a-t-il un espace d'une ligne après le texte dans la cellule A1 mais pas dans A2?
(Pour reproduire: définissez la largeur de la colonne A sur 17,14 (125 pixels), le retour à la ligne et l'alignement des cellules en haut.)
(J'ai vérifié deux fois que j'ai appliqué l'ajustement automatique de la hauteur des lignes aux deux lignes. Le niveau de zoom est de 100%.)
Existe-t-il un remède connu à ce problème sans recourir à un ajustement manuel de la hauteur des rangées (ce qui n’est pas pratique pour plus d’une poignée de rangées)?
Une méthode que je viens de trouver (prolongeant un peu le post précédent):
Voila!
Le WYSIWYG d'Excel n'est pas le meilleur. Dans ta photo, "chat". à peine se faufile dans la 5ème ligne. Si vous réduisez le pourcentage de zoom à moins de 100% (99% par exemple.), Cliquez sur "cat". est maintenant renvoyé à la 6ème ligne. Je pense qu'Excel tente de s'ajuster automatiquement de manière à ce que tout soit presque toujours visible, quel que soit votre niveau de zoom.
Ce n'est pas le seul problème que vous aurez avec AutoFit. De plus, la façon dont une cellule enveloppée dans Word est imprimée ne correspond pas toujours à ce que vous voyez à l'écran. Prenez votre exemple et changez la police en Courrier tout en laissant une taille de 11.
Comme vous pouvez le constater, la cellule A1 semble se voir attribuer 1,5 ligne supplémentaire. Maintenant, regardez l'aperçu avant impression, "chat". est complètement caché.
D'après mon expérience, Excel rencontre ce problème avec certaines polices et tailles de polices plus que d'autres. Courier est pire que Courier New , la taille 11 est généralement inférieure à 10 ou 12. (Pourquoi ont-ils choisi la taille 11 comme nouvelle valeur par défaut, je n'en ai aucune idée.)
Je viens d'écrire une petite macro à cet effet. Je lui ai assigné une touche de raccourci (Ctrl-Maj-J) et cela fonctionne comme un charme pour moi.
Sub ArrangeTable()
'set proper column width and row height for the current region
With Selection.CurrentRegion
.Columns.ColumnWidth = 200
.Columns.EntireColumn.AutoFit
.Rows.EntireRow.AutoFit
End With
End Sub
Pour rendre cela disponible en permanence, vous pouvez facilement créer un complément à chargement automatique:
Save As
, Add-in
, dans le dossier %appdata%\Microsoft\Excel\XLSTART
J'ai moi aussi enduré ce microbe minuscule mais extrêmement distrayant pendant de nombreuses années. Je n'ai pas d'autre solution que de manipuler la largeur de la cellule contenant le plus de texte, et le programme finira par céder et afficher le texte correctement.
Parfois, il existe une méthode nucléaire pour résoudre les problèmes automatiques qui se comportent mal.
Ce que je fais est de copier le texte de chaque cellule et de coller les données dans le Bloc-notes, puis de supprimer la ligne. Ensuite, je copie et insère immédiatement une ligne vide, mais dont le formatage et le comportement sont identiques à ceux de la ligne supprimée. (Vous devez copier et insérer la ligne entière en utilisant les boutons de la ligne de gauche.)
Une fois que cela est fait, vous devez revenir en arrière et insérer le texte du bloc-notes dans chaque cellule. (Utilisation F2 ou bien activez le mode d’édition de chaque cellule avant d’insérer du texte.) C’est une douleur, c’est donc un dernier recours, en particulier pour les feuilles de calcul très larges.
C'est parfois la seule solution, car le problème réside dans le programme lui-même.
Je n'ai pas testé cela à fond, mais cela fonctionne pour moi. Essentiellement, toutes les feuilles sont ajustées automatiquement, puis de nouveau en arrière et la largeur de la colonne est définie sur la largeur d'origine, à moins qu'elle ne soit étendue par l'ajustement automatique. Je n'avais que 10 colonnes et jamais plus de 1000 lignes, ajustez donc le code selon vos besoins.
Sub ResizeCells()
Dim sheetCounter As Integer
Dim rowCounter As Integer
Dim colCounter As Integer
Dim totalWidth As Double
Dim oldColWidths(1 To 10) As Double
For sheetCounter = 1 To ThisWorkbook.Sheets.Count
ActiveWorkbook.Worksheets(sheetCounter).Select
totalWidth = 0
' Extend the columns out to 200
For colCounter = 1 To 10
oldColWidths(colCounter) = Cells(1, colCounter).ColumnWidth
totalWidth = totalWidth + oldColWidths(colCounter)
Cells(1, colCounter).ColumnWidth = 200
Next
For rowCounter = 4 To 1000
If Cells(rowCounter, 1).Value <> "" Or Cells(rowCounter, 2).Value <> "" Or Cells(rowCounter, 3).Value <> "" Then
Rows(rowCounter & ":" & rowCounter).EntireRow.AutoFit
End If
Next
' do autofit
For colCounter = 1 To 10
Cells(1, colCounter).EntireColumn.AutoFit
Next
' reset to original values if current width is less than the original width.
For colCounter = 1 To 10
If Cells(1, colCounter).ColumnWidth < oldColWidths(colCounter) + 0.25 Then
Cells(1, colCounter).ColumnWidth = oldColWidths(colCounter)
End If
Next
Next
End Sub
Il y a un kb article sur ce qui "suggère" (il est excessivement rare, à la mode classique de Microsoft) que si vous définissez une hauteur de ligne, l'ajustement automatique de la hauteur est définitivement supprimé pour cette ligne de la feuille de calcul. Les rangées dont vous n'avez pas encore touché la hauteur seront ajustées automatiquement.
Alors que vous pouvez réinitialiser les largeurs de colonne avec le paramètre "largeur standard" en 2003 (2007: conçu par madman, passez à "largeur par défaut"), mais ils ont oublié (encore une fois) (et encore) de l'inclure dans les lignes. La permanence semble donc inévitable. Cela signifie que si vous avez une hauteur par défaut de 15 et que vous créez une feuille et définissez toutes les hauteurs sur 12, vous venez de perdre l'ajustement automatique.
Dans certains cas, le problème d'espace supplémentaire dans certaines lignes après avoir appelé "Ajuster automatiquement la hauteur de ligne" peut être qu'une colonne masquée a du texte enveloppé dans ces lignes.
J'ai Excel 2010. J'ai constaté que ce problème m'était arrivé lorsque mon réglage de zoom n'était pas à 100%. Tant que je suis à 100%, je ne coupe pas le texte avec l'ajustement automatique des colonnes et des lignes.
Il y a une solution facile:
1) Sélectionnez toutes les lignes que vous souhaitez formater automatiquement (s'il s'agit d'un gros bloc, cliquez sur le premier puis appuyez sur Maj + Fin et Maj + Bas)
2) Cliquez avec le bouton droit de la souris sur la sélection, Formatage des cellules, onglet Alignement, et décochez l'option de renvoi à la ligne.
J'espère que cela t'aides ;)