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

Forumthread: 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
Anzeige
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
Anzeige
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
Anzeige
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
Anzeige
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
;

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
Anzeige

Infobox / Tutorial

Bestimmte Zeichen in Excel-Zellen entfernen


Schritt-für-Schritt-Anleitung

Um bestimmte Zeichen in einer Excel-Zelle zu entfernen, kannst du die folgende VBA-Formel verwenden. Diese Anleitung zeigt dir, wie du jeden zweiten Bindestrich vor einem Dollarzeichen ($) löschen kannst.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub EntferneBindestriche()
    Dim i As Long
    Dim Anzahl As Long
    Anzahl = Len(ActiveCell.Value) - Len(Replace(ActiveCell.Value, "$", ""))

    For i = 1 To Anzahl
        ActiveCell.Value = WorksheetFunction.Substitute(ActiveCell.Value, "$", "£", i)
    Next
    ActiveCell.Replace "-£", "", xlPart
    ActiveCell.Replace "£", " ", xlPart
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu deinem Excel-Dokument.
  2. Wähle die Zelle aus, die du bearbeiten möchtest, und führe das Makro aus.

Diese Methode hilft dir, spezifische Zeichen in deiner Excel-Zelle zu entfernen, wie z.B. Bindestriche vor dem Dollarzeichen.


Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht richtig.

    • Lösung: Überprüfe, ob du die richtige Zelle ausgewählt hast und ob das Makro korrekt eingefügt wurde.
  • Fehler: Der Text bleibt unverändert.

    • Lösung: Stelle sicher, dass die Zelle, die du bearbeitest, tatsächlich Bindestriche und Dollarzeichen enthält.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch die Suchen und Ersetzen-Funktion in Excel nutzen:

  1. Wähle die Zelle oder den Bereich aus, in dem du die Zeichen entfernen möchtest.
  2. Drücke Strg + H, um das Dialogfeld "Suchen und Ersetzen" zu öffnen.
  3. Gib in das Feld "Suchen nach" den Bindestrich und das Dollarzeichen ein: -$
  4. Lass das Feld "Ersetzen durch" leer und klicke auf "Alle ersetzen".

Diese Methode ist einfach und erfordert kein Programmieren.


Praktische Beispiele

  1. Beispiel 1: Du hast einen Text wie Kuchenblech$Küchenschrank$Boden-$platten und möchtest den Bindestrich vor dem ersten Dollarzeichen entfernen.

    Verwende das oben stehende VBA-Skript oder die Suchen und Ersetzen-Funktion.

  2. Beispiel 2: Um alle Eurozeichen (€) zu entfernen, kannst du ebenfalls Suchen und Ersetzen verwenden. Setze in "Suchen nach" und lasse "Ersetzen durch" leer.


Tipps für Profis

  • Nutze die Funktion TEXTJOIN oder FILTER in neueren Excel-Versionen, um komplexe Daten zu verarbeiten.
  • Experimentiere mit Regex in VBA, um flexiblere Muster zu entfernen oder zu bearbeiten.
  • Erstelle eine Sicherungskopie deiner Daten, bevor du Massenänderungen vornimmst.

FAQ: Häufige Fragen

1. Wie kann ich alle Bindestriche in einer Zelle entfernen? Du kannst die Suchen und Ersetzen-Funktion verwenden, um alle Bindestriche durch ein Leerzeichen zu ersetzen.

2. Gibt es eine Möglichkeit, nur das erste Vorkommen eines Zeichens zu löschen? Ja, du kannst eine VBA-Funktion erstellen, die genau das tut, indem sie nur das erste Vorkommen eines bestimmten Zeichens sucht und entfernt.

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