Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1480to1484
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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

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

Anzeige
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

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

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige