Anzeige
Archiv - Navigation
1740to1744
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
VBA: Finden Ersetzen
13.02.2020 08:33:29
Axel
Hallo zusammen,
ich benötige bitte eure Hilfe:
Ich möchte per VBA in einer Tabelle nach zwei Kriterien suchen und bei Treffer zwei Werte in der selben Zeile ersetzen. Die Tabelle kann unterschiedlich viele Zeilen haben, die gesuchten Werte stehen aber immer in der selben Spalte.
Suche nach "52035" in Spalte D UND "IWM" in Spalte E,
bei Treffer beider Kriterien:
Ersetze in der selben Zeile in Spalte B die "50100" durch "52035" und in Spalte E "FND" durch "IWM".
Ich weiß, dass der Code nicht funktioniert, aber vielleicht macht es deutlich, wohin die Reise gehen soll:
Sub Ersetzen()
Dim finden As Range
Set finden = Range("D:D").Find(What:="50235")
'UND
Set finden = Range("E:E").Find(What:="IWM")
'Then
ActiveWorksheet.Columns("B:B").Replace _
What:="50100", Replacement:="50235", _
'UND
ActiveWorksheet.Columns("C:C").Replace _
What:="FND", Replacement:="IWM", _
End Sub
Vielen vielen Dank schon einmal vorab für eure Unterstützung.
Beste Grüße
Axel

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Finden Ersetzen
13.02.2020 08:42:00
Axel
Sorry, ein kleiner Fehler in der Beschreibung.
Es muss heißen:
Ersetze in der selben Zeile in Spalte B die "50100" durch "52035" und in Spalte C "FND" durch "IWM".
AW: VBA: Finden Ersetzen
13.02.2020 08:42:05
SH95
Hallo Axel,
also nur zum Verständnis, du suchst Spalte D&E nach ihren jeweiligen Werten ab (52035 & IWM) wenn beide passen, soll in Spalte B , wenn dort der Wert 50100 steht, 52035 eingetragen werden. Bei Spalte C das selbe, mit FND-IWM?
Sub ersetzten()
Dim lzeile As Integer
For lzeile = 2 To 100 'sucht von Zeile 2 bis 100
If Cells(lzeile, 4) = "52035" Then
If Cells(lzeile, 5) = "IWM" Then
If Cells(lzeile, 2) = "50100" Then
Cells(lzeile, 2) = "52035"
End If
If Cells(lzeile, 3) = "FND" Then
Cells(lzeile, 3) = "IWM"
End If
End If
End If
Next lzeile
End Sub
Gruß
Stefan
Anzeige
AW: VBA: Finden Ersetzen
13.02.2020 08:44:12
Axel
Hi Stefan,
also nur zum Verständnis, du suchst Spalte D&E nach ihren jeweiligen Werten ab (52035 & IWM) wenn beide passen, soll in Spalte B , wenn dort der Wert 50100 steht, 52035 eingetragen werden. Bei Spalte C das selbe, mit FND-IWM?

Ja genau so ist es.
AW: VBA: Finden Ersetzen
13.02.2020 08:46:30
SH95
Dann teste mal den vorher angefügten Code, ob der funktioniert :)
Gruß
Stefan
AW: VBA: Finden Ersetzen
13.02.2020 08:50:21
Axel
Hi Stefan,
hab ich gerade in ein Modul gespeichert, das Sheet als *.xlsm gespeichert und das Makro ausgeführt, da passiert aber nichts.
Kann es daran liegen, dass die Felder, in denen die 52035 und 50100 stehen nicht als Zahl definiert sind?
Gruß
Axel
Anzeige
AW: VBA: Finden Ersetzen
13.02.2020 08:51:46
SH95
kannst du eine Bsp.-Datei hochladen, sonst wird das mehr raten wie helfen :)
Gruß
Stefan
AW: VBA: Finden Ersetzen
13.02.2020 08:59:57
Axel
Die Datei ist schnell selbst gemacht:
Zelle B2: 50100
Zelle C2: FND
Zelle D2: 52035
Zelle E2: IWM
AW: VBA: Finden Ersetzen
13.02.2020 09:33:29
SH95
hast du meine andere "Antwort" auch durchgelesen?
Ich hab die Datei nach deinen Anweisungen zweimal "nachgebaut" und siehe da bei mir funktionierts jedesmal, WOW.
Da ich hier nicht weiter ins blaue raten werde und du anscheinend nicht bereit bist eine Bsp.-Datei hochzuladen, musst du entweder über deinen "Schatten" springen, oder den Beitrag wieder auf offen stellen.
vermutlich wird keine Datei zur Verfügung gestellt, deshalb verabschiede ich mich hiermit
Gruß
Stefan
Anzeige
AW: VBA: Finden Ersetzen
13.02.2020 08:53:23
Axel
Hab's mal als Zahl definiert, macht keinen Unterschied.
Aber eine andere Frage:
Müsste
Dim lzeile As Integer
For lzeile = 2 To 300 'sucht von Zeile 2 bis 300
If Cells(lzeile, 4) = "52035" Then
If Cells(lzeile, 5) = "IWM" Then
das nicht "lspalte" heißen (falls es sowas gibt)?
Gruß
Axel
AW: VBA: Finden Ersetzen
13.02.2020 08:58:24
SH95
ich habs bei mir getestet, da funktionierts...
Bsp.-Datei?
da du das ganze in ein Modul geschrieben hast, teste mal das:
Sub ersetzten()
Dim lzeile As Integer
With Sheets("Tabelle1")
For lzeile = 2 To 100
If .Cells(lzeile, 4) = "52035" Then
If .Cells(lzeile, 5) = "IWM" Then
If .Cells(lzeile, 2) = "50100" Then
.Cells(lzeile, 2) = "52035"
End If
If .Cells(lzeile, 3) = "FND" Then
.Cells(lzeile, 3) = "IWM"
End If
End If
End If
Next lzeile
End With
End Sub
Zu deiner Frage mit lspalte.
.cells(Zeile,Spalte) die Spalten werden da nicht mit Buchstaben, sondern mit Ihren Zahlenwerten angegeben:A=1,B=2 usw.
Die wissen wir ja fest mit B-E = 2-5
Gruß
Stefan
Anzeige
gelöst
13.02.2020 09:48:25
Axel
Danke für die schnelle Unterstützung.
Klappt wunderbar!

121 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige