Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Teil von String löschen, wenn Bedingung erfüllt

Teil von String löschen, wenn Bedingung erfüllt
25.02.2019 10:33:49
String
Hallo Forum,
ich brauche mal eure Hilfe.
Wenn in Spalte A von Zeile 3 bis zum letzten Eintrag entweder Y001 oder Y003 steht, dann sollen in Spalte D die letzten (rechten) 8 Stellen des Strings gelöscht werden.
Kann mir dabei bitte jemand helfen.
Besten Dank im Voraus.
Gruß Peter
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nachgefragt ...
25.02.2019 10:57:26
neopa
Hallo Peter,
... möglicherweise strebst Du eine VBA-Lösung an, oder?
Denn es wäre auch als Formellösung möglich, wenn das Ergebnis der zu ändernden Daten aus Spalte D in einer benachbarten Spalte stehen können.
Alternativ ohne Formeln oder VBA auch als PowerQuery-Lösung, dazu müsstest Du Dir jedoch zunächst dieses kostenfrei von der MS-Seite downladen und installieren.
Gruß Werner
.. , - ...
Anzeige
AW: Ja, bitte VBA
25.02.2019 11:00:45
Peter
Hallo Werner,
eine VBA-Lösung wäre super.
Danke u. Gruß Peter
AW: Ja, bitte VBA
25.02.2019 11:15:01
Bernd
Servus Peter,
teste mal...

Sub test()
Dim i As Integer
Dim intLZ As Integer
Dim ws As Worksheet
Set ws = ActiveSheet
intLZ = ws.Cells(Rows.Count, 1).End(xlUp).Row
For i = 3 To intLZ
If ws.Cells(i, 1).Value = "Y001" Or ws.Cells(i, 1).Value = "Y003" Then
ws.Cells(i, 4).Value = Left(ws.Cells(i, 4).Value, Len(ws.Cells(i, 4).Value) - 8)
End If
Next i
End Sub
Grüße, Bernd
Anzeige
AW: Teil von String löschen, wenn Bedingung erfüllt
25.02.2019 11:23:14
String
Hi
als reines VBA so:
Sub test1()
Dim arr1, arr2
Dim rng2 As Range
Dim z As Long
With ActiveSheet.UsedRange
arr1 = .Columns(1).Value
Set rng2 = .Columns(4)
arr2 = rng2.Value
End With
For z = 3 To UBound(arr1, 1)
If arr1(z, 1) Like "Y00[13]" Then
If Len(arr2(z, 1)) > 8 Then arr2(z, 1) = Left(arr2(z, 1), Len(arr2(z, 1)) - 8)
End If
Next
rng2.Value = arr2
End Sub
als Formel-VBA-Lösung so
Sub test2()
With Range(Cells(3, 1), Cells.SpecialCells(xlCellTypeLastCell))
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = _
"=IF(OR(RC1=""Y001"",RC1=""Y003""),If(Len(RC4)>8,Left(RC4,Len(RC4)-8),RC4),RC4)"
.Copy
.Offset(0, 4 - .Column).PasteSpecial xlPasteValues
.ClearContents
End With
End With
End Sub
Gruß Daniel
Anzeige
Danke euch, funktioniert alles
25.02.2019 11:32:21
Peter
Gruß Peter
;

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