HERBERS Excel-Forum - das Archiv

Thema: Bestimmte Werte in einer Spalte ersetzten

Bestimmte Werte in einer Spalte ersetzten
Addi
Hallo Zusammen, ich möchte in ein bestehendes Makro gerne folgendes hinterlegen:

In Spalte "H" einer umfangreichen Tabelle stehen Werte (Zahlen). Bestimmte Zahlen aus diese Spalte möchte ich durch den Buchstaben "S" ersetzen.
Welche Zahlen ich ersetzen möchte, müsste ich auch in dem Makro hinterlegen.

Könnt Ihr mir hierbei weiterhelfen?

Vielen Dank und Gruß, Addi
Könnt Ihr mir hierbei weiterhelfen?
RPP63
Moin!
Natürlich!
Schaue Dir die Range.Replace-Methode an.
https://learn.microsoft.com/de-de/office/vba/api/excel.range.replace

Gruß Ralf

P.S.:
Wenn Dir das nicht weiterhilft, solltest Du konkretisieren!
AW: Könnt Ihr mir hierbei weiterhelfen?
Addi
Hallo Ralf,

vielen Dank für die Info...ich habe zuvor schon recherchiert und mir auch schon diese Hilfe angeschaut...

Worksheets("Sheet1").Columns("A").Replace _
What:="SIN", Replacement:="COS", _
SearchOrder:=xlByColumns, MatchCase:=True

Dieses Coding macht genau das was ich mir vorstelle, nur das das "SIN" bei mir variabel ist. Die variabelen Werte, z.B. "12345", "34567" und "56789" möchte ich fix im Coding hinterlegen und dann mit einbinden....dabei tue ich mir schwer.

D.h. ich möchte in meinem Fall alle Felder mit "12345", "34567", "56789" in ein "S" umwandeln.

Viele Grüße, Adrian
AW: Könnt Ihr mir hierbei weiterhelfen?
RPP63
Du schreibst "z.B.".
Wenn Du unbedingt "hart codieren" willst, kannst Du das so machen, wie es @MCO vorgeschlagen hat.
Ich würde die zu ersetzenden Werte hingegen in einen Zellbereich schreiben und diesen im Makro abklappern.
Pseudocode:
Sub Ersetzen_aus_Range()

Dim rng As Range, Zelle As Range
Set rng = Tabelle1.Range("X1:X10")
For Each Zelle In rng
Range("H:H").Replace Zelle.Value, "S", xlWhole
Next
End Sub
AW: Bestimmte Werte in einer Spalte ersetzten
MCO
Moin!

Probier mal, ob du das so einbauen kannst:

Sub auswerte()

dim rng as range
dim Zahlen_zum_ersetzen as variant
dim i as long

Set Rng = Range("H:H")

Zahlen_zum_ersetzen = Array(2, 4, 6, 8, 10)

For i = 0 To UBound(Zahlen_zum_ersetzen)
Rng.Replace Zahlen_zum_ersetzen(i), "S"
Next i
End Sub


Gruß. MCO
AW: Bestimmte Werte in einer Spalte ersetzten
Addi
Hallo MCO,
ich muss den Beitrag doch nochmal öffnen, da ist noch eine Unschärfe drin....
Ich habe es wie folgt bei mir hinterlegt:

Dim rng As Range
Dim rplc As Variant
Dim i As Long

Set rng = Range("G:G")

rplc = Array(32, 3079, 3204)

For i = 0 To UBound(rplc)
rng.replace rplc(i), "S"
Next i

In diesem Fall habe ich beispielsweise in der Spalte G Werte wie z.B. 3200 oder 329 stehen...diese werden nun wie folgt angepasst: S00 und S9.
Kann man dies noch ändern, das nur die eindeutigen Zellen angepackt werden?

Vielen Dank und Gruß, Addi
AW: Bestimmte Werte in einer Spalte ersetzten
daniel
Hi
rng.replace rplc(i), "S", xlwhole

bei suchen und ersetzen sollte man in VBA die Parameter immer möglichst vollständig angeben.
unterlässt man das, werden die zuletzt gemachten Einstellungen verwendet und da kann man sich nicht sicher sein, was der Anwender zuletzt gemacht hat.
Daher sollte man zumindest die Parameter LookAt und LookIn (bei .Find) immer mit angeben.
Gruß Daniel
AW: Bestimmte Werte in einer Spalte ersetzten
Addi
Hi Daniel,

vielen Danke - jetzt ist es perfekt... :-)

VG Addi
AW: Bestimmte Werte in einer Spalte ersetzten
Addi
Hallo Ihr Zwei,
vielen Dank für Eure schnelle und kompetente Hilfe.
Ich konnte dies erfolgreich bei mir umsetzen!!
Viele Grüße, Addi