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

72

Lorsque le texte d'une cellule Excel est trop long pour être affiché dans la zone visible de cette cellule et que la cellule suivante de droite est vide, Excel permet d'afficher le texte dans la cellule suivante (et dans la suivante). ensuite, au besoin). Je veux changer cela; Je veux éviter ce débordement de texte.

Je sais que je peux éviter cela en activant le "retour à la ligne" et en ajustant la hauteur des lignes. Mais ce n'est pas ce que je veux.

Je souhaite modifier le comportement DEFAULT d'Excel afin qu'il affiche la valeur de chaque cellule uniquement dans la zone visible de cette cellule. Pas de débordement, pas de mot wrap.

Est-ce possible? (J'utilise Excel 2010, au fait.)

e-mre
la source
5
si cela s'avère impossible, vous pouvez utiliser un caractère d'espacement dans les cellules vides ...
avril
assez intéressant - je ne connais pas d'autre moyen que d'utiliser WordWrap, Font-AutoSize ou des caractères dans les autres cellules.
Jeudi
1
Vous pouvez tronquer des caractères supplémentaires en sélectionnant toutes les cellules, en sélectionnant Data / Text to Columnsune pause après autant de caractères que possible dans une cellule sans renfermement ni trop-plein. Pensez à ignorer la colonne supplémentaire créée contenant les caractères supplémentaires!
Karan
Je suppose que cela répondrait à votre question: superuser.com/a/878605/497156
Sulaiman
"Je sais que je peux éviter cela en activant le" retour à la ligne "et en ajustant la hauteur des lignes." Merci! C'est ma solution choisie.
Ochado le

Réponses:

4

Ce n'est peut-être pas une option pour tout le monde, mais si vous importez le document dans Google Sheets, cette fonctionnalité est prise en charge par défaut. Dans la barre de menus supérieure, trois types d’habillage de texte sont pris en charge. Débordement, enveloppement et clip. Vous cherchez un clip.

Selon les besoins, cela peut être une option viable pour certaines personnes.

Yellavon
la source
5
Donc, votre réponse est de dire: abandonnez Excel et utilisez les feuilles de Google.
Solar Mike
Comme je l'ai dit, ce n'est pas une option pour tout le monde, mais peut être une bonne solution pour certains.
Yellavon
@SolarMike - merci. J'étais confus, mais votre commentaire trie cette réponse. Je pense que & yellavon suppose que les gens hésiteront à sa réponse et qu’il est donc défensif - avant même d’expliquer la réponse. Votre commentaire est plus concis par rapport à la réponse affichée.
barrypicker
En réalité, il s’agit de la réponse la plus proche d’une solution réelle. J'ai découvert que dans Excel, vous pouvez faire quelque chose de similaire. Ajustez la colonne à la largeur requise, puis activez la déformation des mots sur la colonne (ce qui entraînera une augmentation de la hauteur de toutes les lignes), puis sélectionnez enfin toutes les lignes et ajustez leur hauteur à la hauteur souhaitée. Voila! Vous avez maintenant du texte dans les cellules qui ne déborde pas sur les cellules adjacentes. (@ Yellavon: je vais accepter votre réponse, vous voudrez peut-être le mettre à jour pour qu'il contienne ce comportement EXcel afin que les utilisateurs puissent accéder plus facilement à la solution)
e-mre
49

Oui, vous pouvez modifier ce comportement, mais vous ne souhaiterez probablement pas les effets secondaires que cela provoque.

L'alignement du texte est la clé pour limiter le contenu de la cellule aux limites de la cellule, que la cellule adjacente contienne ou non des données Fill. Sélectionnez les cellules que vous ne voulez pas déborder et à droite cliquer dessus> Format de cellule ... > onglet Alignement > Alignement horizontal > Remplir

Le problème avec cette méthode est que cela va effectivement remplir les cellules en répétant leur contenu quand il est suffisamment court pour tenir dans la cellule plusieurs fois. Voir ci-dessous capture d'écran pour ce que cela signifie. (Notez qu'il B7est rempli avec un "texte court".)

Capture d'écran montrant les différents comportements d'alignement du texte pour le remplissage par défaut et le remplissage

Il semble que vous serez coincé avec les solutions de contournement dans le post de Benedikt

Notez que vous pouvez également remplir les cellules adjacentes avec des caractères de graduation ( ') en utilisant la première méthode très intelligente de Benedikt . De cette façon, vous ne devez rien cacher, empêcher le débordement de cellules et si vous les copiez sous forme de texte (disons dans le bloc-notes), vous obtenez toujours du texte vide et non des espaces ou des graduations.

Marcus Mangelsdorf
la source
2
J'ai donc pris votre suggestion de suivre la méthode de Benedikt pour remplir les espaces vides avec des 'caractères. Maintenant, je ne sais pas si je devrais inviter votre réponse, la sienne ou quoi! :-p
Dan Henderson
Je suis encore plus confus. Je ne vois aucune suggestion à utiliser 'dans la réponse de Benedikt, y compris dans d'anciennes modifications! J'ai voté les deux, juste au cas où ...
user56reinstatemonica8
1
@ user568458: Ma note était en fait une variante de la réponse de Benedikt. Vous pouvez remplir les cellules avec ' au lieu de les remplir N/Acomme suggéré par Benedikt. Je viens de trouver la méthode de Benedikt consistant à remplir toutes les cellules vides avec une valeur arbitraire très convaincante.
Marcus Mangelsdorf
1
"Remplir" entraîne également l'alignement des nombres à gauche.
Posfan12
Comment ... incroyablement stupide. (Excel, pas cette réponse.)
TJ Crowder
26

Voici comment je le fais.

  1. Option 1: Remplissez toutes les cellules vides avec un "N / A", puis utilisez la mise en forme conditionnelle pour rendre le texte invisible.
  2. Ou Option 2: remplissez toutes les cellules vides avec 0 et utilisez un paramètre Excel pour masquer les valeurs nulles.

Remplir toutes les cellules vides: (testé sur un Mac)

  • Édition → Aller à ... → Spécial ... (Sous Windows: Accueil → Édition → Chercher et sélectionner → Aller à spécial ...)
  • Sélectionnez "Blancs" et cliquez sur OK.
  • Toutes les cellules vides sont sélectionnées maintenant. Ne cliquez sur rien.
  • Tapez "N / A" ou 0, puis appuyez sur Ctrl+ Enter . Cela insérera la valeur dans toutes les cellules sélectionnées.

Mise en forme conditionnelle pour masquer "N / A"

  • Format → Mise en forme conditionnelle.
  • Créer une nouvelle règle.
  • Style: Classique et Utilisez une formule pour déterminer les cellules à formater.
  • Formule: =A1="N/A"
  • Format avec: Format personnalisé: Couleur de la police blanche, pas de remplissage.

Masquer les zéros

  • Excel → Paramètres → Afficher.
  • Décochez "Afficher les valeurs zéro".

_______________
  C'est Ctrl+ Enter, pas Ctrl+ Shift+Enter .

Benedikt Köppel
la source
13

Essayez d’entrer la formule = "" (c’est-à-dire deux guillemets) dans la cellule adjacente où vous ne voulez pas voir le débordement. Ceci est évalué à "null" ce qui n'affiche rien et n'affectera pas les mathématiques.

microseconde
la source
1
Combiné au message de Benedikt, je pense que c’est l’une des solutions les plus simples car vous n’aurez rien à cacher.
Matt
Cela a fonctionné mieux pour moi.
Peter
Si affecte la fonction statistique COUNTA, qui compte le nombre de cellules d'une plage qui ne sont pas vides . Une cellule affichant une chaîne de longueur zéro à la suite d'une formule n'est pas vide et sera comptée.
ProfondémentOblivious
4

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

Remplir l'alignement du texte

Thomas
la source
4
Cela n'a-t-il pas été couvert par la réponse de Marcus Mangelsdorf ?
Stevoisiak
9
Notez également que Marcus explique un problème grave avec cette méthode: si le contenu de la cellule est suffisamment court, il sera dupliqué. Donc, "A" deviendrait "AAAAAAAA".
Blackwood
Nice, merci. Faites un clic droit sur les cellules à reformater, choisissez "Formater les cellules" et faites le reste à titre de guide. Ça a marché.
Catbuilts
4

En développant la solution consistant 'à utiliser pour bloquer le déversement de texte d’ Excel dans des cellules vides adjacentes, vous ne souhaitez parfois pas modifier / corrompre votre colonne de données en y insérant cette valeur.

Au lieu d'insérer les 'dans vos valeurs de données réelles, vous pouvez créer une nouvelle colonne verticale dédiée à cet effet, entièrement remplie de 'caractères jusqu'au bas.

1. Colonne barrière

entrez la description de l'image ici

2. Insérez la colonne "barrière" à gauche de la (des) colonne (s) que vous souhaitez protéger.

entrez la description de l'image ici

3. Réduisez les colonnes de la barrière en leur attribuant une valeur faible.

Définissez la largeur de colonne sur une valeur telle que .1, ou laissez les colonnes de la barrière plus larges pour qu’elles agissent comme des espaces blancs de marge ou entre colonnes.

entrez la description de l'image ici

Notez que vous devez définir une largeur supérieure à zéro. Si vous définissez la largeur de colonne de la barrière verticale sur zéro, vous obtiendrez le comportement de débordement indésirable de cellules.

4. Voilà!

Glenn Slayden
la source
1

Dans Excel, ajustez la colonne à la largeur requise, puis activez la déformation du mot sur cette colonne (ce qui entraînera une augmentation de la hauteur de toutes les lignes), puis sélectionnez enfin toutes les lignes et ajustez leur hauteur à la hauteur souhaitée. Voila! Vous avez maintenant du texte dans les cellules qui ne déborde pas sur les cellules adjacentes.

(Remarque: j'ai trouvé cela et l'ai posté en tant que commentaire dans la réponse sélectionnée, mais aussi en tant que réponse, il sera donc plus facile à trouver pour les autres.)

e-mre
la source
1
Le deuxième paragraphe de la question: "Je sais que je peux éviter cela en activant le" retour à la ligne "et en ajustant la hauteur des lignes. Mais ce n'est pas ce que je veux."
Fix1234
0

Dans le même ordre d'idées, Google Sheets n'est peut-être pas pour tout le monde , cette macro peut ne pas être pour tout le monde mais peut-être pour quelqu'un .

Il parcourt la plage sélectionnée et remplace les cellules débordantes 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 ignoré.

  • le texte tronqué est codé en dur ou lié via une formule de feuille de calcul =LEFT()

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

La valeur par défaut consiste à conserver les données et à utiliser les deux liens.

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 veuillez sauvegarder et sauvegarder votre travail avant d’essayer une macro inconnue .

Profondément inconscient
la source