wie kann ich für die Zelleninhalte der Spalte D (ab Zeile 2) an zweite und an zehnte Stelle ein Unline "_" hinzufügen?
Beispiel vorher:
D | |
168 | |
169 | |
170 | |
171 | |
172 |
Beispiel nachher:
E | |
168 | |
169 | |
170 | |
171 | |
172 |
Vielen Dank im Voraus !
Liebe Grüße,
Selma
D | |
168 | |
169 | |
170 | |
171 | |
172 |
E | |
168 | |
169 | |
170 | |
171 | |
172 |
=LINKS(A1;1)&"_"&TEIL(A1;2;7)&"_"&RECHTS(A1;LÄNGE(A1)-8)
und runterkopieren.
Anschließend kannst du, wenn gewünscht, per Kopieren und Inhalte einfügen den Originalbereich überschreiben.
Gruß
David
Option Explicit
Sub test()
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim i As Long, wert As String
For i = 1 To Range("A65536").End(xlUp).Row
wert = Format(Range("D" & i), "@")
If wert "" Then wert = Left(Cells(i, 1), 4) & "_" & Mid(Cells(i, 4), 2, 7) & "_" & Right( _
Cells(1, 1), Len(Cells(i, 4)) - 8)
Range("D" & i) = wert
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Habe allerdings festgestellt, dass das Makro mit Fehler abbricht, wenn die Zelle eine Zahl enthält. Ich habe versucht, das mit =Format(..., "@") zu lösen, aber das funzt leider nicht. Wenn das bei dir vorkommen könnte, musst du mal die anderen VBA-Experten fragen (ich habe leider nur Level "VBA bescheiden").
Alternativ kannst du natürlich auch an den Anfang ein
On Error Resume Next
setzen, dann bügelt er den Fehler weg und die entsprechende Zelle bleibt so, wie sie ist.
Gruß
David
D | |
168 | |
169 | |
170 | |
171 | |
172 |
Option Explicit
Sub test()
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next
Dim i As Long, wert As String
For i = 1 To Range("A65536").End(xlUp).Row
wert = Format(Range("D" & i), "@")
If wert "" Then wert = Left(Cells(i, 1), 4) & "_" & Mid(Cells(i, 4), 2, 7) & "_" & Right( _
Cells(i, 1), Len(Cells(i, 4)) - 8)
Range("D" & i) = wert
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Nur nochmal zur Sicherheit:
Es werden alle Zeilen durchlaufen, die in Spalte A einen Wert haben und dabei wird der Wert in Spalte D entsprechend deiner Vorgabe verändert.
Gruß
David
D | |
168 | |
169 | |
170 | |
171 | |
172 |
D | |
168 | |
169 | |
170 | |
171 | |
172 |