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

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

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

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

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
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige