115 votes

Excel - Empêcher le texte d'une cellule de déborder dans la cellule suivante (vide)

Lorsque vous avez du texte dans une cellule Excel qui est trop long pour être affiché dans la zone visible de cette cellule, et que la cellule suivante à droite est vide, Excel laisse le texte s'afficher dans cette cellule suivante (et la suivante, et la suivante, selon les besoins). Je veux changer cela ; je veux éviter ce débordement de texte.

Je sais que je peux éviter ce problème en activant le "word wrap" et en ajustant la hauteur des lignes. Mais ce n'est pas ce que je veux.

Je veux changer le comportement par défaut d'Excel pour qu'il affiche la valeur de chaque cellule uniquement dans la zone visible de cette cellule. Pas de débordement, pas de retour à la ligne.

Est-ce possible ? (J'utilise Excel 2010, soit dit en passant).

2voto

Thomas Points 47

Utilisez l'alignement horizontal du texte "Fill" pour la cellule. Vous pouvez le trouver au même endroit que les autres options d'alignement qui devraient résoudre votre problème

Fill Text Alignment

1voto

e-mre Points 1505

Dans Excel, ajustez la colonne à la largeur requise, puis activez la fonction word-warp sur cette colonne (ce qui aura pour effet d'augmenter la hauteur de toutes les lignes) et enfin, sélectionnez toutes les lignes et ajustez la hauteur des lignes à la hauteur souhaitée. Voilà ! Vous avez maintenant du texte dans les cellules qui ne déborde pas sur les cellules adjacentes.

(Note : J'ai trouvé ceci et l'ai posté comme un commentaire dans la réponse sélectionnée mais je l'ai aussi posté comme une réponse afin qu'il soit plus facile à trouver pour les autres).

0voto

Dans le même ordre d'idée que Google Sheets ne convient pas forcément à tout le monde cette macro n'est peut-être pas pour tout le monde mais elle peut être pour quelqu'un .

Il parcourt la plage sélectionnée et remplace les cellules qui débordent par du texte tronqué.

Les drapeaux déterminent si :

  • le texte incriminé est copié à la même adresse relative dans une nouvelle feuille de calcul ou s'il est mis au rebut.

  • Le texte tronqué est codé en dur ou lié par une formule de feuille de calcul. =LEFT()

  • le texte tronqué est hyperlié à la chaîne complète dans la nouvelle feuille.

Par défaut, les données sont conservées et les deux liens sont utilisés.

Option Explicit

Sub LinkTruncatedCells()
    Dim rng As Range: Set rng = Selection
    Dim preserveValues As Boolean: preserveValues = True
    Dim linkAsFormula As Boolean: linkAsFormula = True
    Dim linkAsHyperlink As Boolean: linkAsHyperlink = True
    Dim w As Single
    Dim c As Range
    Dim r As Range
    Dim t As Long
    Dim l As Long
    Dim s As String
    Dim ws As Worksheet
    Dim ns As Worksheet
    Application.ScreenUpdating = False
    Set ws = rng.Parent
    For Each c In rng.Columns
        w = c.ColumnWidth
        t = 0
        l = 0
        For Each r In c.Rows
            If Len(r) > l Then
                s = r
                If CBool(l) Then r = Left(s, l)
                Do
                    r.Columns.AutoFit
                    If r.ColumnWidth > w And Len(s) > t Then
                        t = t + 1
                        r = Left(s, Len(s) - t)
                        l = Len(r)
                    End If
                Loop Until t = Len(s) Or r.ColumnWidth <= w
                r.ColumnWidth = w
                If r <> s And preserveValues Then
                    If ns Is Nothing Then
                        Set ns = ws.Parent.Worksheets.Add(after:=ws)
                    End If
                    ns.Range(r.Address) = s
                    If linkAsFormula Then r.Formula = "=LEFT(" & ns.Name & "!" & r.Address & "," & l & ")"
                    If linkAsHyperlink Then ws.Hyperlinks.Add Anchor:=r, Address:="", SubAddress:= _
                            ns.Range(r.Address).Address(external:=True)
                End If
            End If
        Next r
    Next c
    ws.Activate
    Application.ScreenUpdating = True
End Sub

Note finale : je l'ai utilisé pour des projets personnels et je l'ai trouvé fiable mais s'il vous plaît Sauvegardez et sauvegardez votre travail avant d'essayer toute macro inconnue. .

0voto

Mark Kennedy Points 808

Une solution simple qui peut être d'écrire ' (une apostrophe) dans la cellule suivante. Il n'est pas visible en soi dans Excel, mais il arrête le débordement de la cellule précédente.

Ce n'est pas une super solution, mais elle a plutôt bien fonctionné pour mon cas limité.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X