Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1196to1200
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

Bestimmte Zeichen in Zelle entfernen

Bestimmte Zeichen in Zelle entfernen
Hugo
Hallo
Möchte in einer Zelle, jeden zweiten Bindestrich vor dem $ Zeichen löschen (-$)
begingend ab dem ersten $ Zeichen
ZB: für die besser übersicht habe ich die zu löschenden - nicht gelöscht sondern mit ** ersetzt
Text vorher:
aaaaaaaaa $bbbbbbbb-bb-$ccccccccc-cc-$dddddddd$eeeeeeee$fffffffff$gggggggg-gg-$ hhhh$ etc
Text vorher:
aaaaaaaaa $bbbbbbbb-bb-$ccccccccc-cc**$dddddddd$eeeeeeee$fffffffff$gggggggg-gg**$ hhhh$ etc
Folgender Code fängt beim ersten Gefunden -$ an
Was muss ich anpassen, damit ab dem ersten $ gestartet wird und dann jedes zweite $ Zeichen geprüft wird und gegebenfalss den Bindestrich enfertnt?
Sub test()
Dim i As Long
Range("B1").Select
For x = 0 To Cells(Rows.Count, 2).End(xlUp).Row
If Right(ActiveCell.Offset(x, 0 - 1), 1) = "0" Then
Anzahl = Len(ActiveCell.Offset(x, 0)) - Len(Replace(ActiveCell.Offset(x, 0), "-$", ""))
For i = 1 To Anzahl
ActiveCell.Offset(x, 0).Formula = _
WorksheetFunction.Substitute(ActiveCell.Offset(x, 0).Formula, "-$", "**$", i)
Next
End If
Next
End Sub
Besten Dank und Gruss
Hugo
AW: Bestimmte Zeichen in Zelle entfernen
07.02.2011 13:02:32
Oberschlumpf
Hi Hugo
Deine Frage lautet:
Möchte in einer Zelle, jeden zweiten Bindestrich vor dem $ Zeichen löschen
Deine Idee sieht so aus:
---------------------------------1----------------2-------------------------------------------------------1----------
aaaaaaaaa $bbbbbbbb-bb-$ccccccccc-cc-$dddddddd$eeeeeeee$fffffffff$gggggggg-gg-$ hhhh$
---------------------------------1----------------2 --------------------------------------------------------1 -----------
aaaaaaaaa $bbbbbbbb-bb-$ccccccccc-cc**$dddddddd$eeeeeeee$fffffffff$gggggggg-gg**$ hhhh$
1 = 1. Bindestrich vor $-Zeichen
2 = 2. Bindestrich vor $-Zeichen
Bedeutet also, dass immer nur jeder zweite Bindestrich vor einem $-Zeichen gelöscht werden soll.
Du hast in deinem Bsp aber jeden Bindestrich - außer dem ersten - gelöscht, und nicht, wie du wolltest, nur jeden zweiten Bindestrich.
Zumindest ich verstehe so nicht, was du erreichen möchtest.
Ciao
Thorsten
Anzeige
AW: Bestimmte Zeichen in Zelle entfernen
07.02.2011 13:13:58
Hugo
Hallo Thorsten
Wenn beim 1. $-Zeichen ein - vorhanden ist dann löschen
dann das 3. $-Zeichen prüfen ob vorhanden und wenn ja dann löschen nun im5. 7. etc
Also, eigentlich bei den "ungeraden" $-Zeichen prüfen/ersetzen.
Hoffe es ist jetzt etwas kare was ich meine
Besten Dank für deine Hilfe und Gruss
Hugo
AW: Bestimmte Zeichen in Zelle entfernen
07.02.2011 13:22:47
Oberschlumpf
Hi Hugo
ähh...nee...klarer is es noch immer nich...
Jetzt möchtest du das 1. , 3. , 5. , 7. , usw Zeichen gelöscht haben.
Aber in deinem ersten Bsp hast du mit dem Löschen erst beim 2. Zeichen - und nicht beim 1. - begonnen.
Wie nun?
Am besten wäre es, wenn du uns das, was du möchtest, in einer Bsp-Datei zeigst.
So, wie es aussieht und so wie es aussehen soll.
Ciao
Thorsten
PS
überprüfe bitte vorm Absenden deine Texte auf Tippfehler
Anzeige
AW: Bestimmte Zeichen in Zelle entfernen
07.02.2011 16:16:35
Gerd
Hallo Hugo!
Sub Start()
Dim lngCt As Long
For lngCt = 1 To Cells(Rows.Count, 2).End(xlUp).Row
Cells(lngCt, 2) = Schlumpf_Out(Cells(lngCt, 2).Value)
Next
End Sub

Function Schlumpf_Out(strText As String) As String
Dim i As Integer, blnChange As Boolean
For i = 2 To Len(strText)
If Mid$(strText, i - 1, 2) = "-$" Then
blnChange = Not blnChange
If blnChange Then Mid$(strText, i - 1, 1) = "|"
End If
Next
Schlumpf_Out = Replace(strText, "|", "")
End Function
Gruß Gerd
AW: Bestimmte Zeichen in Zelle entfernen
08.02.2011 09:26:22
Hugo
Hallo Gerd
Danke für deinen Code
Leider ist es nicht ganz so wie ich es gerne hätte.
Dein Code löscht ab dem ersten $-Zeichen, das einen Bindestrich enthält und dann jedes Zweite.
Der Code soll aber ab dem ersten $ Zeichen (egal ob Bindestrich oder nicht) jedes zweite $-Zeichen prüfen ob ein Bindestrich vorhanden ist und dann denn Bindestrich löschen.
1. $-Zeichen im Textblock prüfen und Bindestrich ggf löschen
dann zum
3. $-Zeichen im Textblock prüfen und Bindestrich ggf löschen
dann zum
5. $-Zeichen im Textblock prüfen und Bindestrich ggf löschen
etc
Die Bindestriche bei den geraden $-Zeichen 2 4 6 etc müssen stehen bleiben.
Ich hoffe du kannst mir weiterhelfen
Besten Dank und Gruss
Hugo
Anzeige
AW: Bestimmte Zeichen in Zelle entfernen
08.02.2011 09:29:03
Oberschlumpf
Hi Hugo
Da ja nun auch Gerd dich noch nicht ganz verstanden hat, wieso zeigst du uns das, was du möchtest, nicht in einer Bsp-Datei?
Ciao
Thorsten
AW: Bestimmte Zeichen in Zelle entfernen
09.02.2011 00:08:50
Gerd
Hallo Hugo,
aha! Die Aufgabenbeschreibung "wächst" mit den angebotenen Lösungen.
Kein Problem, das fördert die Kommunikation. :-)
Gruß Gerd
AW: Bestimmte Zeichen in Zelle entfernen
09.02.2011 21:23:10
Hugo
Hallo
Besten Dank für die Hilfe. Sorry, dass ich es nicht richtig umschrieben habe.
Habe das Problem gelöst
Hier die Lösung (vielleicht ist dann klarer was ich wollte):
Sub Test()
Dim i As Long
'Text vorher:
'Kuchenblech$Küchenschrank$Boden-$platten und Teppich-$messer$Garten-$stuhl etc
Anzahl = Len(ActiveCell.Offset(0, 0)) - Len(Replace(ActiveCell.Offset(0, 0), "$", ""))
For i = 1 To Anzahl
ActiveCell.Offset(0, 0).Formula = WorksheetFunction.Substitute(ActiveCell.Offset(0, 0) _
.Formula, "$", "£", i)
Next
ActiveCell.Offset(0, 0).Replace "-£", "", xlPart
ActiveCell.Offset(0, 0).Replace "£", " ", xlPart
'Text nachher:
'Kuchenblech Küchenschrank$Bodenplatten und Teppich-$messer Garten-$stuhl etc
End Sub
Gebe mir nächste mal mehr Mühe das Problem richtig zu umschreiben.
Besten Dank und Gruss
Hugo
Anzeige
AW: Bestimmte Zeichen in Zelle entfernen
08.02.2011 17:52:52
Tino
Hallo,
so habe ich es verstanden.
Dieser Code sollte jedes zweite -$ entfernen, angefangen beim ersten vorkommen.
Sub test()
Dim Regex As Object, oMatch As Object
Dim iPos As Integer, n As Integer
Dim strText$

strText = "aaaaaaaaa $bbbbbbbb-bb-$ccccccccc-cc-$dddddddd$eeeeeeee$fffffffff$gggggggg-gg-$ hhhh$ etc"
Debug.Print strText
Set Regex = CreateObject("Vbscript.Regexp")

With Regex
    .MultiLine = True
    .Pattern = "\-\$"
    .Global = True
    Set oMatch = .Execute(strText)
End With

If oMatch.Count > 1 Then
    n = oMatch.Count - 1
    For n = n - (n Mod 2) To 0 Step -2
       iPos = oMatch(n).FirstIndex
       strText = Mid(strText, 1, iPos) & Mid(strText, iPos + 3, Len(strText))
    Next n
End If
Debug.Print strText
End Sub
Gruß Tino
Anzeige

347 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige