2012-11-19 15:11:43 +0000 2012-11-19 15:11:43 +0000
80
80

Excel - Voorkom dat celtekst in de volgende (lege) cel

overloopt Wanneer u tekst in een Excel-cel hebt die te lang is om in het zichtbare gebied van die cel te worden weergegeven, en de volgende cel aan de rechterkant leeg is, laat Excel de tekst in die volgende cel (en de volgende, en de volgende, als dat nodig is) worden weergegeven. Ik wil dit veranderen; ik wil deze tekst overloop vermijden.

Ik weet dat ik dit kan vermijden door “word wrap” in te schakelen en de rijhoogte aan te passen. Maar dat is niet wat ik wil.

Ik wil het DEFAULT gedrag van Excel veranderen zodat het de waarde van elke cel alleen in het zichtbare gebied van die cel laat zien. Geen overflow, geen woord wrap.

Is dit mogelijk? (Ik gebruik trouwens Excel 2010).

Antwoorden (8)

53
53
53
2015-10-22 13:28:31 +0000

Ja, je kunt dit gedrag veranderen, maar je zult waarschijnlijk niet willen dat de bijwerkingen die dit veroorzaakt.

De sleutel tot het beperken van de celinhoud tot de grenzen van de cel, ongeacht of de aangrenzende cel gegevens bevat, is de tekstuitlijning Fill. Selecteer de cellen die je niet wilt overlopen en klik met de rechtermuisknop op deze cellen…Opmaak cellen… Uitlijningstabblad…Horizontale uitlijning…Vullen…

Het **probleem met deze methode is dat de inhoud van cellen wordt gevuld door ze te herhalen als ze kort genoeg zijn om meerdere keren in de cel te passen. Zie onderstaande screenshot voor wat dit betekent. (Merk op dat B7 is gevuld met ‘korte tekst’.)

Het lijkt erop dat je in Benedikt’s post

vastzit aan de workarounds. Merk op dat je ook de aangrenzende cellen kunt vullen met vinktekens (') met behulp van Benedikt’s eerste, zeer slimme methode. Op deze manier hoef je niets te verbergen, voorkom je celoverloop en als je de cellen als tekst kopieert (laten we zeggen notitieblok) krijg je nog steeds lege tekst en geen spaties of vinkjes.

27
27
27
2015-07-24 13:00:33 +0000

Zo doe ik het.

  1. Optie 1: Vul alle lege cellen met een “n.v.t.” en gebruik dan Conditional Formatting om de tekst onzichtbaar te maken.
  2. Of Optie 2: Vul alle lege cellen met 0 en gebruik een Excel-instelling om nulwaarden te verbergen.

Het vullen van alle lege cellen: (getest op een Mac)

  • Bewerken → Ga naar… → Speciaal … (Op Windows: Home → Bewerken → Zoek & Selecteer → Ga naar speciaal…)
  • Selecteer “Blanken” en druk op OK.
  • Alle lege cellen zijn nu geselecteerd. Klik nergens op.
  • Typ “N/A” of 0, en druk dan op Ctrl+Enter†. Dit zal de waarde invoegen in alle geselecteerde cellen.

Conditional Formatting to Hide “N/A ”

  • Format → Conditional Formatting.
  • Maak een nieuwe regel.
  • Style: Klassiek, en Gebruik een formule om te bepalen welke cellen moeten worden opgemaakt.
  • Formule: =A1="N/A"
  • Formaat met: Aangepast Formaat: Letterkleur wit, geen vulling.

Verberg nullen

  • Excel → Instellingen → Weergave.
  • Vink “Toon nulwaarden” aan.

____MenuMenuMenuMenuMenuMenu; Dat is Ctrl+Enter,niet_ Ctrl +Shift+ Invoeren.

13
13
13
2017-04-17 12:50:46 +0000

Probeer de formule in te voeren =“ (dat zijn twee dubbele aanhalingstekens) in de aangrenzende cel waar je de overloop niet wilt zien. Dit evalueert naar "null” wat niets weergeeft en geen invloed heeft op de wiskunde.

7
7
7
2017-12-13 19:27:48 +0000

Dit is misschien niet voor iedereen een optie, maar als u het document in Google Sheets importeert, wordt deze functionaliteit standaard ondersteund. In de bovenste menubalk worden drie soorten tekstomloop ondersteund. Overflow, wrap en clip. U bent op zoek naar clip.

Afhankelijk van de vereisten kan dit voor sommige mensen een haalbare optie zijn.

4
4
4
2018-11-28 00:26:59 +0000

Uitbreiding van de oplossing van het gebruik van ' voor het blokkeren van Excel‘s naar rechts morsen van tekst in aangrenzende lege cellen, soms wilt u uw gegevenskolom niet wijzigen/corrigeren door die waarde daar in te voegen.

In plaats van het invoegen van de ' in uw werkelijke gegevenswaarden, kunt u voor dit doel een nieuwe speciale verticale kolom creëren, volledig gevuld met ' tekens naar beneden.

1. Barrièrekolom

2. Plaats de “barrière” kolom links van de kolom(s) die u wilt beveiligen.

3. Klap de barrièrekolommen in door hun kolombreedte in te stellen op een kleine waarde

Stel de kolombreedte in op een waarde zoals .1, of houd de barrièrekolommen breder om te fungeren als een marge of inter-kolom witruimte.

Noteer dat u een breedte moet instellen die groter is dan nul; het instellen van de verticale barrièrekolombreedte op nul zal terugkeren naar het ongewenste celoverloopgedrag.

*4. Voila! *

4
4
4
2017-10-31 15:09:07 +0000

Gebruik de horizontale tekstuitlijning “Fill” voor de cel. U kunt het op dezelfde plaats vinden als andere uitlijningsopties die uw probleem

zouden moeten oplossen.

1
1
1
2019-06-24 08:59:09 +0000

In Excel stelt u de kolom in op de gewenste breedte, schakelt u vervolgens word-warp in op die kolom (waardoor alle rijhoogtes toenemen) en selecteert u ten slotte alle rijen en past u de rijhoogtes aan op de gewenste hoogte. Voila! Je hebt nu tekst in cellen die niet overloopt naar de aangrenzende cellen.

(Let op: ik heb dit gevonden en heb het gepost als commentaar in het geselecteerde antwoord, maar ook gepost als antwoord dus zal het makkelijker te vinden zijn voor anderen).

0
0
0
2019-09-23 04:17:44 +0000

In dezelfde gedachtegang dat Google Sheets misschien niet voor iedereen is, is deze macro misschien niet voor iedereen maar wel voor iemand_.

Hij loopt door het geselecteerde bereik en vervangt overlopende cellen door afgeknotte tekst.

Flags bepaalt of:

  • de overtredende tekst wordt gekopieerd naar hetzelfde relatieve adres in een nieuw werkblad of dat deze wordt weggegooid.

  • de ingekorte tekst is hard gecodeerd of gelinkt via werkbladformule =LEFT()

  • de ingekorte tekst is gekoppeld aan de volledige string in het nieuwe blad.

Fout is om gegevens te bewaren en beide links te gebruiken.

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

Slotnoot: Ik heb het gebruikt voor persoonlijke projecten en vond het betrouwbaar, maar gelieve ** te bewaren en een back-up te maken van uw werk voordat u een onbekende macro** probeert.