Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

max. Zeichen pro Zelle





Frage

Hallo, kann ich in EXCEL 2002 eine maximale Zeichenanzahl pro Zelle festlegen? Hintergrund: ich habe eine Tabelle mit 1500 Zeilen und 4 Spalten. In einer Spalte ist Text der unterschiedliche Längen hat. Ich brauche das so formatiert, das die Zelle max. 80 Zeichen zulässt und den Rest wegschneidet. Danke und Grüße Seb

Antwort 1 von Saarbauer

Hallo,

könnte man wahrscheinlich über "Daten" "Gültigkeit" "Benutzerdefiniert" Länge(Zelle)<80 für Neueingabe regeln

Für die vorhandene Liste in Spalte 5 bis 8

=Teil(Zelle, 1,80)

Nacher alle Zellen (Spalte 5 bis 8) kopieren und mit "Bearbeiten""Inhalt einfügen" "Werte"
in Spalte 1 bis 4 einfügen, Spalte 5 bis 8 löschen.

Sicherheithalber von Daten Kopie anlegen.

Gruß

Helmut

Antwort 2 von coros

Hi ,

oder das ganze als VBA Code. Kopiere den Code in das VBA Projekt der Tabelle, in dem die Zellinhalte beschnitten werden sollen.

Private Sub Worksheet_Change(ByVal Target As Range)
If Len(Target.Cells) > 80 Then
Target.Cells = Mid(Target.Cells, 1, 10)
End If
End Sub

Der Code kürzt das eingegebne Wort, wenn dieses über 80 Zeichen beträgt, in der gerade aktiven Zelle auf 80 Zeichen.

Ich hoffe, Du kommst klar. Bei Fragen melde Dich.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.


MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 3 von OnkelB06

Danke für die Antworten!

Saarbauer: die Formel =Teil(Zelle, 1,80) nimmt er nicht an, und schreibt
Fehler in der Formel, hab schon Leerzeichen gesetzt und verschoben,
aber nimmt sie nicht an

coros: den code habe ich integriert. bei textneueingabe oder kopieren
einer zelle in eine andere funktioniert er (bis auf das er auf 10 verkürzt).
aber beim kopieren einer ganzen spalte springt er ins VBA
eingabefenster und bringt laufzeitfehler `13`: Typen unverträglich

ganz kurz vor der Lösung!?

Grüße Seb

Antwort 4 von Saarbauer

Hallo,

anstatt Zelle gehört da die bezeichnung der Zelle wie A2 usw hin, hatte ich vergessen anzugeben

Gruß

Helmut

Antwort 5 von coros

Hi Seb,

sorry, aber ich hatte den VBA Code nur mit 10 Zeichen probiert und dann vergessen einen Befehl wieder auf die 80 Zeichen anzugleichen. Der nachfolgende Code trennt auf 80 Zeichen und bringt auch keinen Laufzeitfehler mehr, wenn mehr als eine Zelle markiert wurden.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Len(Target.Cells) > 80 Then
Target.Cells = Mid(Target.Cells, 1, 80)
End If
End Sub


MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 6 von OnkelB06

saarbauer: ich habe es probiert, die spalte mit dem text mit der Funktion
TEIL formatiert, die Spalte zum Einfügen mit max. Textlänge eingestellt.
Trotzdem wird der Text nicht gekürzt und 1 zu 1 übernommen

coros: jetzt ist die fehlermeldung weg. aber es wird trotzdem nur beim
kopieren einer zelle die textlänge angepasst. wenn ich mehrere zellen
kopiere 1 zu 1 kopiert in voller textlänge.

gleich klappts :-)

Grüße Seb

Antwort 7 von Saarbauer

Hallo,

hast du alle Zellen (Spalte 5 bis 8) kopieren und mit "Bearbeiten""Inhalt einfügen" "Werte"
in Spalte 1 bis 4 einfügen, gemacht, habe es probiert. Bei mir klappts

Gruß

Helmut

Antwort 8 von OnkelB06

hallo, nein ich habe nur die eine spalte C (die gekürzt werden soll),
kopiert. zuerst habe ich auf Spalte C die TEIL Funktion eingestellt und auf
Spalte G (leer) max. Textlänge. Dann C in G kopiert. Ergebnis 1:1. Dann
habe ich testhalber die Funktionen auf den Spalten getauscht, sowie
beide mal nur mit textlänge und beide mal mit TEIL Funktion formatiert.
immer das selbe Ergebnis. Auch beim Einfügen mit "Wert" bzw. "Wert und
Zahlenkombination"

Grüße Seb

Antwort 9 von Saarbauer

Hallo,

Ich hatte etwas mehr an Kenntnis vorausgesetzt.

in Zelle C2 steht dein Text mit 100 Zeichen "tgsgnjksd.....", dan in Zelle G2 schreiben

=Teil(C2,1,80)

Um alle weiteren Zeilen so umzuwandeln. Zelle anklicken, anschliessend mit Mauszeiger auf linke untere Ecke (kleines Quadrat) und dann rechte Maustaste drücken und nach unten ziehen bis zur letzten Zeile.

Anschliessend mit Antwort 7 weiter

Gruß

Helmut

Antwort 10 von coros

Moin Seb,

sorry, dass ich mich nicht mehr gestern gemeldet habe, aber ich war etwas in Zeitnot. Du hast ja wieder einen Vorschlag von Helmut bekommen. Um aber auch einen VBA Vorschlag zu geben der ebenfalls funktioniert, nachfolgend eine neue Lösungsvariante. Der Code prüft alle Zellen mit Inhalt und kürzt den Text auf 80 Zeichen, wenn dieser mehr als 80 Zeichen hat. Kopiere den Code wieder in das VBA Projekt der Tabelle, in dem Du die Wörter kürzen lassen möchtest.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.EnableEvents = False
For Wiederholungen_Zeile = 1 To ActiveSheet.UsedRange.Rows.Count
For Wiederholungen_Spalte = 1 To Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column
If Len(Cells(Wiederholungen_Zeile, Wiederholungen_Spalte)) > 80 Then
Cells(Wiederholungen_Zeile, Wiederholungen_Spalte) = _
Mid(Cells(Wiederholungen_Zeile, Wiederholungen_Spalte), 1, 80)
End If
Next
Next
Application.EnableEvents = True
End Sub


Teste mal und melde Dich bei Problemen oder Fragen.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.