Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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)
Antworten 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
Antworten 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)
Antworten 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
Antworten Top


Gehe zu:


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