VBA Finden Ersetzen
#1
Hallo,

Wie kann ich folgenden Vba so umändern dass er mir die Zellen nicht nur findet sondern auch noch leert und durch den Text ersetzt.


Aus diesem:

DA GRACA Alex
DA GRAÇA Ale

Wird momentan dieses Resultat:

DA GRAÇA AlexCA Alex
DA GRAÇA AlexÇA Ale

Und ich will aber dass dieses Resultat kommt Smile :

DA GRAÇA Alex
DA GRAÇA Alex

Hier der Vba Code:
Code:
Sub FindReplaceAll_CountReplacements()

Dim sht As Worksheet
Dim fnd As Variant
Dim rplc As Variant
Dim ReplaceCount As Long

fnd = "DA GRA"
rplc = "DA GRAÇA Alex"

For Each sht In ActiveWorkbook.Worksheets

 ReplaceCount = ReplaceCount + Application.WorksheetFunction.CountIf(sht.Cells, "*" & fnd & "*")

 sht.Cells.Replace What:=fnd, Replacement:=rplc, _
   LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
   SearchFormat:=False, ReplaceFormat:=False
   
Next sht

MsgBox "I have completed my search and made replacements in " & ReplaceCount & " cell(s)."

End Sub


Vielen Dank
Top
#2
Hallo Patrick,

sofern nur der Name in der Zelle steht, versuche es ohne "xlPart", also mit "xlWhole".

Falls die Zellen komplexere Texte haben, braucht es eine Beispiedatei.

mfg
Top
#3
Hier die Datei mit Makro als Resultat sollte "DA GRAÇA Alex" heraus kommen so dass ich immer wieder vorkommende Schreibfehler in einer Tabelle per Makro verbessern kann.


Angehängte Dateien
.xlsm   Beispiel.xlsm (Größe: 13,79 KB / Downloads: 2)
Top
#4
Hallo Patrick,

so viele Fragen bisher und immer noch fehlen viele Angaben:

Ich interpretiere mal:

- Datenbank mit mehreren 1.000 Datensätze
- Dutzende Problemfälle mt jeweils 3-9 verschiedenen Schreibweisen (wie gezeigt)

M.E. gehört dieses Data-Cleaning zu den zeitaufwändigsten Aufageb, denn ein automatisiertes Replace macht (zuviele) Fehler.

Vorschlag:

Autofilter mit "beginnt mit" und "DA GRA" setzen. Danach sieht man alle Schreibweisen und trifft die Auswahl. Diese, und nur diese wird mit copy/paste ersetzt.

Es ist möglich dies mit VBA zu unterstützen: Ein Liste aller Problemfälle (hier: DA GRA) und für jeden dieser Fällen eine Liste mit möglichen falschen Schreibweise. Da jederzeit neue Fehler dazu kommen konnen, muss es dynamisch sein.

mfg
Top
#5
Hallöchen,

Range("A1:A10").Replace What:="DA GRA*", Replacement:="A GRAÇA Alex" ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#6
Hallo

so wie ich die Sache sehe haben Schauan und Fennek fast die perfekte Lösung angeboten. 
Der Code von Schauen hat nur einen Sonderfall nicht erfasst. Beide hintereinander sind perfekt.

Mit dem Vorschlag von Fennek kann man über Autofilter schauen ab alle Zeilen erfasst wurden, oder noch etwas offen bleibt?? 
Wenn ja den Code solange nachbessern wie es geht, sinnvoll ist, und den Rest von Hand aendern.

 mfg Gast 123

Code:
Sub Test()
Cells.Replace What:="DA GRA*", Replacement:="DA GRAÇA Alex"
Cells.Replace What:="DA GRCA Ale", Replacement:="DA GRAÇA Alex"
End Sub
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste