Microsoft Excel

Herbers Excel/VBA-Archiv

suchen und ersetzen von bestimmten Zeichenfolgen

Betrifft: suchen und ersetzen von bestimmten Zeichenfolgen von: Josef
Geschrieben am: 24.10.2005 15:13:45

Hallo zusammen,
ich habe folgendes Problem:

In einer Tabelle soll nach der Zeichenfolge "BxxW;=G" gesucht werden und durch "BxxWG" ersetzt werden. Mein Problem besteht darin, dass die beiden Zeichen, die ich mit "xx" eingetragen habe unterschiedlche 2-stellige Zahlen sind. Verwende ich als Platzhalter "??" so werden beim ersetzen auch die beiden "??" eingesetzt. Das selbe passiert, wenn ich als Platzhalter "*" verwende. Auch hier wird nach dem Ersetzen "*" angezeigt.

Z.Zt. habe ich folgenden Befehl:

Cells.Replace What:="B*W;=G", Replacement:="B*WG", LookAt:= _
xlPart, SearchOrder:=xlByColumns, MatchCase:=True

Nochmal als Info: vor dem Ersetzen steht "B01W;=G" nachher sollte "B01WG" stehen.

Mit welchem Befehl würde das funktionieren?

  


Betrifft: AW: suchen und ersetzen von bestimmten Zeichenfolgen von: a.gerken
Geschrieben am: 24.10.2005 15:31:43

hi

hier ist mal ein Sub! weiß nich wie ich das mit ner function machen sollte

Sub replace()
Dim zelle As Range
For Each zelle In UsedRange
    If Left(zelle.Value, 1) = "B" And Right(zelle.Value, 4) = "W;=G" Then
        If IsNumeric(Mid(zelle.Value, 2, 2)) Then
            zelle.Value = "B" & Mid(zelle.Value, 2, 2) & "WG"
        Else
            zelle.Value = "B" & Mid(zelle.Value, 2, 1) & "WG"
        End If
    End If
Next zelle
End Sub


benutze lieber "UsedRange" anstatt "Cells" weil dann nur die beschriebenen zellen überprüft werden => Wesentlich schneller
Viel spaß

Gruß a.gerken


  


Betrifft: AW: suchen und ersetzen von bestimmten Zeichenfolgen von: a.gerken
Geschrieben am: 24.10.2005 15:33:01

hi versuchs mal hiermit

Sub replace()
Dim zelle As Range
For Each zelle In UsedRange
    If Left(zelle.Value, 1) = "B" And Right(zelle.Value, 4) = "W;=G" Then
        If IsNumeric(Mid(zelle.Value, 2, 2)) Then
            zelle.Value = "B" & Mid(zelle.Value, 2, 2) & "WG"
        Else
            zelle.Value = "B" & Mid(zelle.Value, 2, 1) & "WG"
        End If
    End If
Next zelle
End Sub



  


Betrifft: AW: suchen und ersetzen von bestimmten Zeichenfolgen von: a.gerken
Geschrieben am: 24.10.2005 15:33:51

aaaah ich hasse es! srry wenn ich es jetzt ein wenig öfter gepostet hat liegt an meinem pc ^^


  


Betrifft: AW: suchen und ersetzen von bestimmten Zeichenfolgen von: Josef
Geschrieben am: 24.10.2005 16:09:25

Hallo,

ich hab das Makro ausprobiert, aber leider bleibt es an der dritten Zeile hängen:

For Each zelle In UsedRange

Ich bekomme die Meldung "Code kann im Haltemodus nicht ausgeführt werden".
Was bedeutet das.

Gruß

Josef


  


Betrifft: AW: suchen und ersetzen von bestimmten Zeichenfolgen von: u_
Geschrieben am: 24.10.2005 15:36:00

Hallo,
dafür musst du jede Zelle einzeln untersuchen und entsprechend ersetzen.
Für folgendes Makro muss die Tabelle in A1 anfangen:
Sub ersetzen()
  Dim iRows As Long, iCols As Integer, iRow As Long, iCol As Integer, vntArr, strTmp
  iRows = ActiveSheet.UsedRange.Rows.Count
  iCols = ActiveSheet.UsedRange.Columns.Count
  vntArr = ActiveSheet.UsedRange
  For iRow = 1 To iRows
    For iCol = 1 To iCols
    strTmp = vntArr(iRow, iCol)
      If strTmp Like "B??W" Then vntArr(iRow, iCol) = "B" & Mid(strTmp, 2, 2) & "WG"
    Next
  Next
  Range(Cells(1, 1), Cells(iRows, iCols)) = vntArr
End Sub

Gruß

Geist ist geil!


  


Betrifft: AW: suchen und ersetzen von bestimmten Zeichenfolgen von: Josef
Geschrieben am: 24.10.2005 16:05:39

Hallo,

ich habs ausprobiert es funzt aber leider nicht. Beim Ausführen des Makro´s bleibt die Zeichenfolge leider so wie sie war. Es steht nachher auch immer noch "B01W;=G"

Gruß

Josef


  


Betrifft: AW: suchen und ersetzen von bestimmten Zeichenfolgen von: u_
Geschrieben am: 24.10.2005 16:12:11

Hallo,
steht etwa nicht nur B01W in der Zelle, sonder etwas wie blablaB01Wblabla?

Gruß

Geist ist geil!


  


Betrifft: AW: suchen und ersetzen von bestimmten Zeichenfolgen von: Josef
Geschrieben am: 24.10.2005 16:18:26

Hallo,

die Zeichenfolge "B01W;=G" steht innerhalb einer längeren Zeichenfolge.
Ich will aber nur diese Zeichen auswählen in "B01WG" und das 01 kann auch 02,03,04 bzw. jede zweistellige Zahl sein.

Gruß

Josef


  


Betrifft: AW: suchen und ersetzen von bestimmten Zeichenfolgen von: u_
Geschrieben am: 24.10.2005 16:25:54

Hallo,
jetzt hab ichs kapiert.
Sub ersetzen()
  Dim iRows As Long, iCols As Byte, iRow As Long, iCol As Byte, vntArr, strTmp
  Dim i As Integer
  With ActiveSheet
    With .UsedRange
      iRows = .Rows.Count
      iCols = .Columns.Count
    End With
    vntArr = .UsedRange
  End With
  For iRow = 1 To iRows
    For iCol = 1 To iCols
      strTmp = vntArr(iRow, iCol)
      For i = 1 To Len(strTmp) - 6
        If Mid(strTmp, i, 7) Like "B??W;=G" Then
          vntArr(iRow, iCol) = Left(strTmp, i - 1) & "B" & Mid(strTmp, i + 1, 2) & "WG" & Mid(strTmp, i + 7, 255)
          Exit For
        End If
      Next i
    Next
  Next
  ActiveSheet.UsedRange = vntArr
End Sub

Gruß

Geist ist geil!


  


Betrifft: AW: suchen und ersetzen von bestimmten Zeichenfolgen von: Josef
Geschrieben am: 26.10.2005 06:48:48

Hallo,
danke für diese Info; jetzt funktioniert es!!


  


Betrifft: AW: suchen und ersetzen von bestimmten Zeichenfolgen von: bst
Geschrieben am: 25.10.2005 10:14:50

Auch Hallo,

nimm mein Suchen&Ersetzen von hier: http://www.excel-center.de/foren/read.php?4,1922

Suche nach: (B\d\dW);=G
Ersetze durch: $1G

cu, Bernd


 

Beiträge aus den Excel-Beispielen zum Thema "suchen und ersetzen von bestimmten Zeichenfolgen"