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

Forumthread: Gleiche Zeichen an versch. Stellen ersetzen

Gleiche Zeichen an versch. Stellen ersetzen
15.05.2014 10:48:58
Christian
Hallo,
Ich habe folgendens Problem:
Ich habe mehrere Zellen mit unterschiedlichen Text und Textlänge.
In manchen dieser Zellen stellen $-Zeichen, Anzahl der $-Zeichen kann variieren.
Bsp.:
Abgastemperatur
bei Systemtemp. 55/30:           $$$ C
bei Systemtemp. 75/60:           $$$ C
Heizgass. Widerstand:          $$$$ mbar
Abmessungen
Länge:                         $$$$ mm
Breite:                        $$$$ mm
Höhe:                          $$$$ mm
Ich möchte per VBA in jeder Zeile alle $-Zeichen ersetzen, das ich nur noch EIN(1) $-Zeichen je Zelle habe, bzw. ein anderes makantes Zeichen.
In Excel direkt bekomme ich es mit folgender Formel hin:
=ERSETZEN(A1;SUCHEN("$";A1);LÄNGE(A1)-(LÄNGE(WECHSELN(A1;"$";"")));"$")
In VBA würde ich es mit der Replace-Funktion machen, leider scheitere ich daran, die Anfangsstelle und Länge der $-Zeichen einzubinden.
Mit freundlichen Grüßen
Christian

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gleiche Zeichen an versch. Stellen ersetzen
15.05.2014 11:08:10
Rudi
Hallo,
als Ansatz:
Sub aaa()
Dim x, y
x = "bei Systemtemp. 55/30:           $$$ C"
y = InStr(x, "$")
x = Left(x, y) & Replace(Mid(x, y), "$", " ")
MsgBox x
End Sub

Gruß
Rudi

AW: Gleiche Zeichen an versch. Stellen ersetzen
15.05.2014 11:15:09
Christian
Hallo Rudi,
funktioniert für einzelne Zelle sehr gut!!!
Leider nicht in einer schleife die mir alle Zellen durchgehen soll :(
mfg Christian

Anzeige
AW: Gleiche Zeichen an versch. Stellen ersetzen
15.05.2014 11:29:09
Rudi
Hallo,
das ist ein Ansatz!
Bei VBA gut solltest du selbst in der Lage sein, das zu modifizieren.
Gruß
Rudi

AW: Gleiche Zeichen an versch. Stellen ersetzen
15.05.2014 12:01:18
fcs
Hallo Christian,
hier eine Variante mit Eingabe-Möglichkeit für die Zeichen und Bearbeitung des selektierten Zellbereichs in einer Schleife.
Gruß
Franz
Sub Ersetzen_Zeichen()
'ersetzt im selektierten Zellbereich einen Teiltext bestehend aus einem oder mehreren _
identischen Zeichen durch ein einzelnes Zeichen
Dim strFind As String, strReplace As String, strText As String
Dim Pos1 As Long, Pos_L As Long
Dim Bereich As Range, Zelle As Range
Set Bereich = Selection
strFind = InputBox("zu suchendes Zeichen" & vbLf _
& "(Bitte nur ein Zeichen eingeben!)", "Zeichenfolge ersetzen", "$")
If strFind = "" Then Exit Sub
strFind = Left(strFind, 1)
strReplace = InputBox("Ersatz-Zeichen" & vbLf _
& "(Bitte nur ein Zeichen eingeben!)", "Zeichenfolge ersetzen", "@")
If strReplace = "" Then Exit Sub
strReplace = Left(strReplace, 1)
If MsgBox("Im selektierten Zellbereich """ & Bereich.Address(False, False, xlA1) _
& """ die Zeichenfolge aus einem oder mehreren """ & strFind _
& """ durch ein einzelnes """ & strReplace & """ ersetzen", _
vbQuestion + vbOKCancel, "Teiltext ersetzen?") = vbCancel Then Exit Sub
For Each Zelle In Bereich.Cells
strText = Zelle.Text
Pos1 = InStr(1, strText, strFind)
If Pos1 > 0 Then
strText = Left(strText, Pos1 - 1) & strReplace & Replace(Mid(strText, Pos1), strFind, "")
Zelle = strText
End If
Next
End Sub

Anzeige
AW: Gleiche Zeichen an versch. Stellen ersetzen
15.05.2014 11:49:46
Christian
Hallo Rudi,
funktioniert für einzelne Zelle sehr gut!!!
Leider nicht in einer schleife die mir alle Zellen durchgehen soll :(
mfg Christian

AW: Gleiche Zeichen an versch. Stellen ersetzen
15.05.2014 11:59:37
Hajo_Zi
Hallo Christian,
nur wenige sehen Deinen Code.
Option Explicit
Sub aaa()
Dim y As Long
Dim Loletzte As Long
Dim Loi As Long
Loletzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
For Loi = 1 To Loletzte
y = InStr(Cells(Loi, 1), "$")
If y > 0 Then
Cells(Loi, 1) = Left(Cells(Loi, 1), y) & _
Application.Substitute(Mid(Cells(Loi, 1), y), "$", " ")
End If
Next Loi
End Sub
Gruß Hajo

Anzeige
AW: mit Ersetzen oder per VBA mit Replace
15.05.2014 12:59:55
Daniel
Hi
ersetze einfach solange "$$" durch "$", bis keine "$$" mehr vorhanden sind.
beim auführen von Hand sagt dir Excel ja, wenn es nichts mehr finden konnte, mit VBA muss man _ halt entsprechend prüfen:

With Range("A:A")
Do While Worksheetfunction.CountIf(.Cells, "*$$*") > 0
.Replace "$$", "$", xlpart
Loop
End With
Gruß Daniel

Anzeige
AW: mit Ersetzen oder per VBA mit Replace
15.05.2014 13:21:18
Christian
Vielen Dank für eure Hilfe,
Nach erfolgreicher Mittagspause konnte ich Rudis Ansatz gut in mein vorhanden Prozess einbauen ;)
In diesem Sinne nochmals Danke für die guten Ideen !!!
mit freundlichen Grüßen Christian
;

Forumthreads zu verwandten Themen

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