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

Zelle: 255+ Zeichen zählen. Zeichen unberücksichtigt lassen.

Forumthread: Zelle: 255+ Zeichen zählen. Zeichen unberücksichtigt lassen.

Zelle: 255+ Zeichen zählen. Zeichen unberücksichtigt lassen.
31.05.2024 11:12:37
Opodeldok
Schönen Guten Morgen.

Mir macht das nachfolgende Makro ein paar Probleme. Bislang habe ich es auf kurze Texte (Vokabelliste) angewandt. Da lief alles super. Jetzt brauche ich es aber für längere Texte, die auch noch Formatierungsbefehle enthalten (Karteikarten). Dabei sind zwei Probleme aufgetaucht, die ich alleine nicht gelöst bekomme.

Sub Umrechnung()

Dim lngZeile As Long
Dim dblZaehler As Double
Dim dblVielfach As Double
dblVielfach = 15 '== noch festlegen
For lngZeile = 1 To Cells(Rows.Count, 1).End(xlUp).Row
dblZaehler = (Len(Application.Substitute(Cells(lngZeile, 1), " ", "")) _
+ Len(Application.Substitute(Cells(lngZeile, 2), " ", ""))) * dblVielfach
Cells(lngZeile, 3) = CInt(dblZaehler / 60) & " (" & dblZaehler & ")"
Next lngZeile
End Sub


1. Manche Zellen haben über 255 Zeichen. Da meldet mir der Algorithmus den Laufzeitfehler 13. Ich habe herausgefunden, dass Excel theoretisch nur 255 Zeichen in einer Zelle zulässt. Praktisch aber auch mehr möglich ist. Die kann ich dann genauso praktisch auch mit mit der Formel LÄNGE() zählen. Gibt es solch eine praktische Lösung auch für VBA? Oder bin ich darauf angewiesen, mit der Formel LÄNGE() im Tabellenblatt zu arbeiten? Würde natürlich gehen. Wäre aber unschön...

2. Die Zellen beinhalten nun auch fünf unterschiedliche Formatierungsbefehle:

Userbild

Die Formatierungsbefehle können gar nicht, einzeln oder mehrfach in einer Zelle vorkommen. Auch können unterschiedliche Formatierungsbefehle in einer Zelle vorkommen. Beim Zählen der Zeichen in einer Zelle, würde ich nun gerne alle Formatierungszeichen unberücksichtigt lassen. Ist das in VBA umsetzbar?
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle: 255+ Zeichen zählen. Zeichen unberücksichtigt lassen.
31.05.2024 11:50:06
Fennek
Hallo,

m.M.n. kann eine Zelle ca 32.000 Zeichen enthalten.

Nach lesen des Codes vermute ich den Fehler hier:


Cells(lngZeile, 3) = CInt(dblZaehler / 60) & " (" & dblZaehler & ")"


mfg
AW: Zelle: 255+ Zeichen zählen. Zeichen unberücksichtigt lassen.
31.05.2024 12:13:22
Opodeldok
Hallo Fennek.

Vielen Dank für deine Antwort.

Der Debugger schlägt aber genau hier an:
dblZaehler = (Len(Application.Substitute(Cells(lngZeile, 1), " ", "")) _

+ Len(Application.Substitute(Cells(lngZeile, 2), " ", ""))) * dblVielfach


Ich habe sogar so pedantisch getestet, dass ich sagen kann, bei 255 Zeichen läuft der Code weiter. Bei 256 Zeichen verschluckt er sich. Wenn ich die Zeichenzahl in der Zelle reduziere auf unter 256 läuft der Code weiter. Bis zur nächsten Zelle, die mehr als 255 Zeichen enthält. Und so weiter....
Anzeige
AW: Zelle: 255+ Zeichen zählen. Zeichen unberücksichtigt lassen.
31.05.2024 12:24:52
Opodeldok
Die Spezifikationen von Microsoft sprechen von einer maximalen Spaltenbreite von 255 Zeichen: https://support.microsoft.com/de-de/office/spezifikationen-und-beschr%C3%A4nkungen-in-excel-1672b34d-7043-467e-8e27-269d656771c3

Es gibt in den Zellen keine Zeilenumbrüche. Darf es auch nicht geben. Weil die einen späteren Import in Anki unmöglich machen würden.

Tatsächlich kann ich auch mehr als 255 Zeichen ohne Zeilenumbruch in eine Zelle schreiben. Auch mit der Funktion LÄNGE() zählen. Nur mit VBA bekomme ich die Zelle nicht ausgezählt.
Anzeige
AW: Zelle: 255+ Zeichen zählen. Zeichen unberücksichtigt lassen.
31.05.2024 12:36:54
Onur
Sub Umrechnung()

Dim lngZeile, dblZaehler, dblVielfach
dblVielfach = 15 '== noch festlegen
For lngZeile = 1 To Cells(Rows.Count, 1).End(xlUp).Row
dblZaehler = (Len(Replace(Cells(lngZeile, 1), " ", "")) _
+ Len(Replace(Cells(lngZeile, 2), " ", ""))) * dblVielfach
Cells(lngZeile, 3) = CInt(dblZaehler / 60) & " (" & dblZaehler & ")"
Next lngZeile
End Sub

Anzeige
AW: Zelle: 255+ Zeichen zählen. Zeichen unberücksichtigt lassen.
31.05.2024 13:14:58
Opodeldok
Fantastisch!!

Der Code läuft durch. Tausend Dank für den ersten Schritt. So ganz habe ich noch nicht geschnallt, warum er das jetzt tut. Aber das erarbeite ich mir jetzt.

Dann muss ich nur noch einen Weg finden, die Zeichen der Formatierungsbefehle herauszurechnen.
Gerne !
31.05.2024 13:16:02
Onur
AW: Zelle: 255+ Zeichen zählen. Zeichen unberücksichtigt lassen.
31.05.2024 12:21:08
Onur
Warum DOUBLE für eine GANZZAHLVARIABLE?
Wozu Application.Substitute und nicht einfach REPLACE ?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige