Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

mit VBA bestimmte Zeichen suchen und ändern

Betrifft: mit VBA bestimmte Zeichen suchen und ändern von: Kempel
Geschrieben am: 08.10.2014 12:34:57

Hallo zusammen, ich hab folgendes Problem:
im A1 in jeder Zelle habe ich texte mit manchmal mehr als 500 Zeichen.
Ich möchte mit hilfe VBA-Schleife Zelleninhalt prüfen und wenn text mehr als 500 Zeichnen hat und u.a. "abc" beinhalten, dann "abc" in "bca" ändern.
z.B.
A1 hat mehr als 500 Zeichen und "abc" beinhaltet, dann soll "abc" durch "bca" ersetzt werden
A2 hat mehr als 500 Zeichen und beinhaltet keine "abc", dann nichts machen
A3 hat weniger als 500 Zeichen, dann nichts machen
usw.
Hoffe auf eure Hilfe.

Grüße Andre

  

Betrifft: AW: mit VBA bestimmte Zeichen suchen und ändern von: Daniel
Geschrieben am: 08.10.2014 12:50:19

Hi

folgende Formel in B1 oder eine freie Spalte und nach unten ziehen:

=Wenn(Und(IstZahl(Suchen("abc";A1));Länge(A1)>500);Wechseln(A1;"abc";"bca");A1)

Gruß Daniel


  

Betrifft: AW: mit VBA bestimmte Zeichen suchen und ändern von: UweD
Geschrieben am: 08.10.2014 13:05:14

Warum Istzahl und Suchen?

kürzer....

=WENN(LÄNGE(A1)>500;WECHSELN(A1;"abc";"bca");A1)
Gruß UweD


  

Betrifft: AW: mit VBA bestimmte Zeichen suchen und ändern von: Daniel
Geschrieben am: 08.10.2014 13:31:25

stimmt, ist natürlich überflüssig.
hab halt einfach nur die geforderten Bedingungen in der Formel umgesetzt.
Funktionieren wird trotzem.
Gruß Daniel


  

Betrifft: AW: mit VBA bestimmte Zeichen suchen und ändern von: UweD
Geschrieben am: 08.10.2014 12:59:38

Hallo Andre


so??

Sub abc()
    On Error GoTo Fehler
    Dim TB1, i%
    Dim SP%, ZE&, LR&
    Application.ScreenUpdating = False
    Set TB1 = ActiveSheet
    SP = 1 'Spalte A
    ZE = 1 'ab Zeile
    LR = TB1.Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
    For i = 1 To LR
        If Len(TB1.Cells(i, SP)) > 500 Then
            TB1.Cells(i, SP) = Replace(TB1.Cells(i, SP), "abc", "bca")
        End If
    Next
    Err.Clear
Fehler:
        If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err. _
Clear
End Sub
Gruß UweD


  

Betrifft: AW: mit VBA bestimmte Zeichen suchen und ändern von: Kempel
Geschrieben am: 08.10.2014 17:41:05

Vielen Dank Daniel!
Vielen Dank Uwe!

schleife funktioniert bestens!
nun wie kann ich mit dieser schleife "abc" am anfang des textes komplett löschen, wenn text mit "abc" beginnt?
z.B.
A1 hat mehr als 500 Zeichen und beinhaltet folgenden text:
abc abrakadabra abrakadabra abc ......abc
es soll sein:
abrakadabra abrakadabra bca ......bca

Grüsse Andre


  

Betrifft: AW: mit VBA bestimmte Zeichen suchen und ändern von: UweD
Geschrieben am: 09.10.2014 09:21:49

Hallo

TIPP:
Du musst bei weitern Fragestellungen das Häkchen aktivieren, damit Die Frage "offen" bleibt.


Zur Frage:

so...

Sub abc()
    On Error GoTo Fehler
    Dim TB1, i&
    Dim SP%, ZE&, LR&, L%, TXT$
    Application.ScreenUpdating = False
    Set TB1 = ActiveSheet
    SP = 1 'Spalte A
    ZE = 1 'ab Zeile
    LR = TB1.Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
    For i = ZE To LR
        TXT = TB1.Cells(i, SP)
        L = Len(TXT)
        If L > 500 Then
            If Left(TXT, 3) = "abc" Then
                TXT = LTrim(Right(TXT, L - 3))
            End If
            TB1.Cells(i, SP) = Replace(TXT, "abc", "bca")
        End If
    Next
    Err.Clear
Fehler:
        If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err. _
Clear
End Sub
Das LTrim() löscht ein evtl. übrig gebliebenes führendes Leerzeichen.


LG UweD


 

Beiträge aus den Excel-Beispielen zum Thema "mit VBA bestimmte Zeichen suchen und ändern"