Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Zeilenumbruch

VBA Zeilenumbruch
21.03.2016 09:33:27
Helena
Hallo
Sub test()
Dim c As Range
'Sheets("AV Tank").Select
For Each c In Range("B:B")
If Len(c.Value) > 36 Then
c.Value = Left(c.Value, 36) & Right(c.Value, Len(c.Value) - 20)
End If
Next c
End Sub

Dies habe ich gefunden und ist fast perfekt, es soll aber ganz ein fach nach 36 Zeichen Zeilenumbruch machen, jetzt wird der resttext noch gekürzt.
SOLL = nach 36 Zeichen, Rest in gleiche Zelle in 2te Zeile
DANKE
Helena
Gruss aus CH

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zeilenumbruch
21.03.2016 09:42:44
Daniel
Hi
c.Value = Left(c.Value, 36) & vbLF & Mid(c.Value, 37)
Gruß Daniel

AW: VBA Zeilenumbruch
21.03.2016 09:45:37
UweD
So...

Dim c As Range
For Each c In Range("B:B").SpecialCells(xlCellTypeConstants, 3)
If Len(c.Value) > 36 Then
c.Value = Left(c.Value, 36) & Chr(10) & Mid(c.Value, 37)
End If
Next c

Durch die Ergänzung .SpecialCells(xlCellTypeConstants, 3) werden nur belegte Zellen geprüft...
Gruß UweD

Anzeige
AW: VBA Zeilenumbruch
21.03.2016 18:44:39
Helena
Hallo
leider nicht perfekt es läuft minuten ? Ergebniss ist OK aber
der RUN geht sehr lange ..
DANKE
Gruss Helena

Hast du mal eine Musterdatei?
22.03.2016 08:40:41
UweD
Hallo nochmal
- Wieviele Zeilen weden denn bearbeitet?
- Laufen noch andere Makros ab, evtl. Change events?
- Hast du viele rechenintensive Formeln in der Datei?
Alles Einflussfaktoren auf die Laufzeit.
Gru UweD

Anzeige
AW: VBA Zeilenumbruch
22.03.2016 09:46:58
Daniel
Hi
wenns schneller gehen soll, darfst du nicht jede Zelle einzeln bearbeiten.
Dann musst du erst die Zellwerte in ein Array schreiben, in der Schleife dieses Array bearbeiten und am Schluss das Array zurück in die Zellen schreiben.
beim Verarbeiten von einfachen Werte-Arrays ist VBA viel schneller als beim Verabeiten von Excelzellen.
ausserdem solltest du nicht jede Zelle einer Spalte bearbeiten, dass sind nämlich verdammt vielen (1,04 MIO), sondern nur die, die auch tatsächlich verwendet werden.

dim arr
dim z as Long
With ActiveSheet.UsedRange.Columns(2)
arr = .value
for z = 1 to Ubound(arr, 1)
if len(arr(z, 1)) > 36 then arr(z, 1) = Left(arr(z, 1), 36) & vblf & Mid(arr(z, 1), 37)
next
.value = arr
End with
Gruß Daniel

Anzeige
AW: VBA Zeilenumbruch
22.03.2016 18:43:37
Helena
DANKE
das funktioniert wunderbar und "SCHNELL"
Helena
Gruss aus CH

AW: VBA Zeilenumbruch ERLEDIGT
22.03.2016 18:44:41
Helena
DANKE erledigt
;

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

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