Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1576to1580
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
Inhaltsverzeichnis

Wörter aus String entfernen

Wörter aus String entfernen
25.08.2017 12:39:14
_Domi_
Hallo zusammen,
ich habe folgendes Problem:
in einer Zelle steht folgender Text (die Anzahl der Fahrzeuge ist Variabel):
"Fahrzeug1 - Fahrzeug2 - Fahrzeug3 - Fahrzeug4"
Nun würde ich gerne per VBA einzelne Fahrzeuge entfernen können:
"Fahrzeug1 - Fahrzeug2 - Fahrzeug3 - Fahrzeug4", dann Fahrzeug2 raus, daraus entsteht "Fahrzeug1 - Fahrzeug3 - Fahrzeug4"
Ich bekomme es einfach nicht hin mit den variablen Mittelstrichen, also wenn das Fahrzeug am Ende steht das der linke Mittelstrich und das Fahrzeug entfernt wird und wenn das Fahrzeug am Anfang steht das der rechte Mittelstrich mit dem Fahrzeug entfernt wird...
Hat jemand eine Idee oder ein Beispiel dazu?
Danke und Grüße
Domi

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wörter aus String entfernen
25.08.2017 12:52:45
mmat
Hallo,
Antwort auf die Frage: ja
Gegenfrage: Was hast du denn rausgefunden? (Poste mal deinen Code ...)
vg, MM
AW: Wörter aus String entfernen
25.08.2017 13:04:02
yummi
Hallo Domi,
mal angenommen dein zu entfernender String steht in eienr Zelle z.B. A7.
Dann einfach:
strneu = Replace(CelleMitaltem String, Inhalt von Zelle A7 & " -", "")
if str Neu = CelleMitaltem String then
strneu = Replace(CelleMitaltem String, "- " & Inhalt von Zelle A7, "")
end if
CelleMitAltenString.value = strneu
Gruß
yummi
AW: Wörter aus String entfernen
25.08.2017 13:05:44
Michael
Hallo!
Würde ich so machen:
Sub a()
Const WEG$ = "Fahrzeug2"
Const SEP$ = " - "
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.Worksheets(1)
Dim r As Range, c As Range, s$
Dim rx As Object, Funde, Element
Application.ScreenUpdating = False
With Ws
Set r = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
Set rx = CreateObject("VBScript.RegExp")
rx.Pattern = "Fahrzeug\d{1,}": rx.Global = True
For Each c In r
With c
Set Funde = rx.Execute(.Text)
For Each Element In Funde
If Not Element Like WEG Then
s = s & Element & SEP
End If
Next Element
s = Left(s, Len(s) - Len(SEP))
.Offset(, 2) = s: s = vbNullString
End With
Next c
End With
Set Wb = Nothing: Set Ws = Nothing: Set r = Nothing: Set c = Nothing
Set rx = Nothing: Set Funde = Nothing: Set Element = Nothing
End Sub
Hier als Datei: https://www.herber.de/bbs/user/115757.xlsm
Viel Spaß; gib Bescheid ob's passt!
LG
Michael
Anzeige
AW: Wörter aus String entfernen
25.08.2017 13:06:25
ChrisL
Hi
Hier noch die Variante Split/Join:
Sub t()
Dim arRemove() As Variant, arSplit As Variant, iCounter As Integer
Dim i As Integer, ii As Integer, bRemove As Boolean
Const strTest As String = "Fahrzeug1 - Fahrzeug2 - Fahrzeug3 - Fahrzeug4"
arRemove = Array("Fahrzeug2", "Fahrzeug4")
arSplit = Split(strTest, " - ")
For i = LBound(arSplit) To UBound(arSplit)
bRemove = False
For ii = LBound(arRemove) To UBound(arRemove)
If arSplit(i) = arRemove(ii) Then
bRemove = True
Exit For
End If
Next ii
If Not bRemove Then
If iCounter = 0 Then
ReDim arResult(0) As Variant
Else
ReDim Preserve arResult(iCounter) As Variant
End If
arResult(iCounter) = arSplit(i)
iCounter = iCounter + 1
End If
Next i
MsgBox Join(arResult, " - ")
End Sub

cu
Chris
Anzeige
AW: Wörter aus String entfernen
25.08.2017 14:12:28
Niclaus
oder so?
Sub testwr1()
origtxt = Range("A1")
deltxt = Range("B1")
ntext1 = Replace(" - " & origtxt, " - " & deltxt, "")
ntext2 = Replace(ntext1, " - ", "", 1, 1)
MsgBox ntext2
End Sub
Das entspricht einer Formel:
=WECHSELN(WECHSELN(" - " & A1;" - " & B1;"");" - ";"";1)

Grüsse Niclaus
Alles kein Problem und wie man den vielen ...
26.08.2017 01:50:58
Luc:-?
…AWen entnehmen kann, auch relativ trivial und auch mit Fmln zu bewältigen, Domi,
die klassische StandardFktt wie bspw WECHSELN benutzen. Um hier eine weitere Facette ins Spiel zu bringen und gleichzeitig eine Verbindung zwischen VBA-Pgmm und Fmln zu schaffen, die vielen nicht gewärtig zu sein scheint, zeige ich im Folgenden 4 Fml-Alternativen mit Benutzung VBA-basierter sog UDFs, die oben links separat und maussensitiv verlinkt aufgeführt wdn:
 NOPQRS
55
Fahrzeug2Fahrzeug1 - Fahrzeug2 - Fahrzeug3 - Fahrzeug4FmlLängenPickOnFahrzeug1 - Fahrzeug3 - Fahrzeug4114TxEval Fahrzeug1 - Fahrzeug3 - Fahrzeug4171DataSetFahrzeug1 - Fahrzeug3 - Fahrzeug447VJoin&VSplitFahrzeug1 - Fahrzeug3 - Fahrzeug451Formeltypen{=PickOn(O55;WECHSELN(VJoin(WENN(SPALTE(A:D)=VERGLEICH(N55;VSplit(O55;" - "););"";SPALTE(A:D));;-1);" ";":");" - ")}normal{=WAHL(SPALTE(A:B);"";VJoin(INDEX(VSplit(O55;" - ");TxEval("{"&VJoin(WENN(SPALTE(A:D)=singular Mx     VERGLEICH(N55;VSplit(O55;" - "););"";SPALTE(A:D));",";-1)&"}"))&T(SPALTE(A:C));" - "))}dual Matrix=VJoin(DataSet(VSplit(O55;" - ");N55;-1);" - ")=VJoin(VSplit(WECHSELN(O55;N55;"");" - ");" - ";-1)
56
57
58
59
60
61
62
63
Feedback nicht unerwünscht! Gruß, Luc :-?
Besser informiert mit …
Anzeige

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige