Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellinhalte "Ende abschneiden"

Zellinhalte "Ende abschneiden"
Stef@n
Hallo Excel-Freunde,
ich bin auf der Suche nach einer Möglichkeit, per VBA in einer Spalte die Zellen
mit mehr als neunhundert Zeichen in einer Zelle entsprechend "abzukürzen"
Also: wenn die Zelle mehr als neuenhundert (länge größer 900) Stellen hat,
alle darüber hinausgehenden Stellen "radikal" abschneiden.
Grund:
Ich versuche in diesen Zellen mit suchen-ersetzen bestimmte Zeichen zu löschen,
jedoch verweigert Excel diese Aktion mit dem Hinweis: Formel zu lang.
Nach meinen Recherchen liegt das daran, dass das suchen-ersetzen bei Zellen
mit mehr als 911 Zeichen nicht mehr funktioniert.
Hat jemand einen Tip ?
Gruß
Stef@n
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
=LINKS(A1;900) o.T
10.11.2011 18:43:46
Andre´
AW: =LINKS(A1;900) o.T
10.11.2011 18:46:53
Stef@n
Hallo Andrè
ja, so funktioniert es per Formel.
Ich möchte aber ein VBA-Code, der in einer Spalte alle Längen prüft.
Die meisten Zellen sind kleiner - bei mehr als 200.000 Zeilen
Noch ne Idee per VBA ?
Gruß
Stef@n
200.000 Zeilen bei XL 2003? o.w.T.
10.11.2011 18:48:57
Reinhard

Anzeige
hab natürlich Excel 2007 ....
10.11.2011 18:59:44
Stef@n
Ups Reinhard
hab natürlich Excel 2007
zu schnell geklickt
Gruß
Stef@n
AW: hab natürlich Excel 2007 ....
10.11.2011 19:28:21
Andre´
Hallo Stefan,
probiere mal folgendes, wird aber bei 200000 Zellen etwas dauer.
Sub Test()
Dim sAddress As String
Dim I As Long
sAddress = ActiveCell.Address
sAddress = Mid(sAddress, InStr(sAddress, "$") + 1, InStr(2, sAddress, "$") - 2)
'For I = ActiveCell.Row To Range(sAddress & 1048576).End(xlUp).Row 'Excel 2007
For I = ActiveCell.Row To Range(sAddress & 65536).End(xlUp).Row
Range(sAddress & I) = Left(Range(sAddress & I), 900)
Next I
End Sub

MFG Andre
Anzeige
werde ich morgen testen o.w.t.
10.11.2011 20:09:00
Stef@n
ohne Makro
11.11.2011 07:26:08
Ass
Hallo Stefan,
Spalte markieren
Menü Daten
Text in Spalten
feste Breite
-weiter
911 separieren
-weiter
2. bis letzte Spalte markieren
Spalten nicht importieren
-Fertigstellen
Gruß
Rudi
perfekt !
14.11.2011 10:04:14
Stef@n
Hallo Andre
funktioniert perfekt !
Habe nur noch das screenupdating auschaltet, damit ich kein Augenflimmern bekomme ;)
Dank Dir für Deine Unterstützung
Stef@n
Anzeige
AW: Zellinhalte "Ende abschneiden"
11.11.2011 07:56:31
Reinhard
Hallo Stefan,
wenn A die Spalte ist:
Sub nn()
Dim Zei As Long
Application.ScreenUpdating = False
Columns(1).Insert
Zei = Cells(Rows.Count, "B").End(xlUp).Row
Range("A1:A" & Zei).Formula = "=LEFT(B1,900)"
Range("A1:A" & Zei).Value = Range("A1:A" & Zei).Value
Columns(2).Delete
Application.ScreenUpdating = True
End Sub

Gruß
Reinhard
Anzeige
AW: Zellinhalte "Ende abschneiden"
14.11.2011 10:06:10
Stef@n
Danke Reinhard :)
Besten Gruß
Stef@n
noch einer
14.11.2011 10:25:58
Rudi
Hallo,
Sub xxx()
Dim arrTmp, i As Long
arrTmp = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
For i = 1 To UBound(arrTmp)
arrTmp(i, 1) = Left(arrTmp(i, 1), 900)
Next
Cells(1, 1).Resize(UBound(arrTmp)) = arrTmp
End Sub

Gruß
Rudi
Anzeige
Thx
14.11.2011 13:22:29
Stef@n
Rudi
auf mal wieder eine perfekte Lösung von Dir
Danke sehr und Gruß
Stef@n
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zellinhalte in Excel effektiv abschneiden


Schritt-für-Schritt-Anleitung

Um den Inhalt von Zellen in Excel abzuschneiden, insbesondere wenn sie eine bestimmte Länge überschreiten, kannst Du verschiedene Ansätze verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, die sowohl Formeln als auch VBA-Methoden umfasst.

1. Mit einer Formel arbeiten:

Wenn Du nur den Text in einer Zelle bis zu einer bestimmten Länge beibehalten möchtest, kannst Du die LINKS-Funktion verwenden. Angenommen, der Zelleninhalt befindet sich in Zelle A1:

=LINKS(A1;900)

Diese Formel schneidet den Text in Zelle A1 nach 900 Zeichen ab.

2. VBA für mehrere Zellen nutzen:

Wenn Du viele Zellen in einer Spalte hast, kannst Du ein VBA-Skript verwenden. Hier ist ein Beispiel:

Sub TextAbschneiden()
    Dim I As Long
    For I = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        Cells(I, 1).Value = Left(Cells(I, 1).Value, 900)
    Next I
End Sub

Dieses Skript schneidet den Text in der ersten Spalte (A) auf 900 Zeichen ab.


Häufige Fehler und Lösungen

Fehler 1: "Formel zu lang"
Lösung: Wenn Du zu viele Zeichen in einer Zelle hast, kann Excel das Suchen und Ersetzen verweigern. Schneide den Zelleninhalt zuerst mit einer Formel oder einem VBA-Skript ab.

Fehler 2: VBA läuft nicht bei großen Datenmengen
Lösung: Achte darauf, die Bildschirmaktualisierung während der Ausführung des Skripts auszuschalten, um die Leistung zu verbessern:

Application.ScreenUpdating = False
'... dein Code ...
Application.ScreenUpdating = True

Alternative Methoden

Neben den erwähnten Methoden gibt es auch die Möglichkeit, die Funktion "Text in Spalten" zu verwenden:

  1. Markiere die Spalte, die Du bearbeiten möchtest.
  2. Gehe zu Daten > Text in Spalten.
  3. Wähle Feste Breite und klicke auf Weiter.
  4. Setze einen Trennstrich bei 900 Zeichen.
  5. Wähle die Spalten, die Du nicht importieren möchtest, und klicke auf Fertigstellen.

Diese Methode ist besonders nützlich, wenn Du viele Zellen gleichzeitig bearbeiten möchtest.


Praktische Beispiele

Beispiel 1: Abschneiden des Inhalts einer Zelle
Du hast in Zelle A1 den Text "Dies ist ein langer Text, der mehr als 900 Zeichen enthält..." und möchtest ihn auf 900 Zeichen kürzen. Verwende einfach die Formel:

=LINKS(A1;900)

Beispiel 2: VBA für mehrere Zeilen
Wenn Du eine ganze Spalte mit 200.000 Zeilen hast und nur die ersten 900 Zeichen behalten möchtest, kannst Du das VBA-Skript aus der Schritt-für-Schritt-Anleitung verwenden.


Tipps für Profis

  • Nutze die TEXTVERKETTEN-Funktion, um mehrere Zellen zu kombinieren und den Inhalt zu kürzen.
  • Falls Du regelmäßig mit großen Datenmengen arbeitest, erwäge das Erstellen von Makros, um wiederkehrende Aufgaben zu automatisieren.
  • Halte die Datenbank sauber, indem Du regelmäßig nicht benötigte Daten entfernst oder kürzst.

FAQ: Häufige Fragen

1. Wie kann ich den Text in einer Zelle nur am Ende abschneiden?
Du kannst die LINKS-Funktion verwenden, um nur die ersten N Zeichen zu behalten. Alternativ kannst Du VBA verwenden, um den Text dynamisch zu kürzen.

2. Was passiert, wenn ich die Länge überschreite?
Wenn Du mehr als die erlaubten Zeichen in einer Zelle hast, kann Excel keine Berechnungen mehr durchführen. Daher ist es wichtig, den Inhalt regelmäßig zu überprüfen und gegebenenfalls abzuschneiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige