Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1904to1908
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
suchen und ersetzen
05.11.2022 20:37:24
Lapos
Hallo,
kann mir jemand helfen diese kleine VBA so umzustellen das für die Tabelle 1 auch eine Range festgelegt ist und nicht für die komplette Tabelle gilt?
Das Script soll Werte suchen und ersetzen.
Tabelle1 hat eine lange Liste von Namen in Spalte (H) ca 400 Werte, die ich durch standardisierte Namen ersetzen muss, die auf der Tabelle2 basieren.
In Tabelle2 steht in Spalte A der zu suchenden Werte und Spalte B der Wert mit welchem in Tabelle1 (H) ersetzt werden soll.

Option Explicit
Public Sub searchAndReplaceFromList()
Dim cel As Range
With Tabelle2
For Each cel In Tabelle2.Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
Tabelle1.UsedRange.Replace cel.Value2, cel.Offset(0, 1).Value2
Next
End With
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: suchen und ersetzen
05.11.2022 20:53:38
ralf_b

For Each cel In Tabelle2.Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
With Tabelle1
Intersect(.UsedRange, .Columns("H")).Replace cel.Value2, cel.Offset(0, 1).Value2
End With
Next

AW: suchen und ersetzen
05.11.2022 21:11:12
Lapos
Hallo ralf_b
vielen Dank für die schnelle Hilfe. Das Script läuft soweit, jedoch ersetze ich auch Zahlen mit Text wie z.B 10 = Hemd , 100 = Hose, hier schreibt es dann bei der 100 anstatt Hose ein Hemd0, er liest sozusagen wohl nicht die ganze Zelle sondern fängt gleich an zu ersetzen wenn es den ersten Wert trifft. Lässt sich soetwas beheben?
Viele Grüße

Public Sub searchAndReplaceFromList()
Dim cel As Range
With Tabelle2
For Each cel In Tabelle2.Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
With Tabelle1
Intersect(.UsedRange, .Columns("I")).Replace cel.Value2, cel.Offset(0, 1).Value2
End With
Next
End With
End Sub

Anzeige
AW: suchen und ersetzen
05.11.2022 21:43:50
Lapos
Ich finde es schön das man hier noch etwas lernen darf und Denkanstöße bekommt !
Bei deinem Tipp bin ich auf den Begriff "lookat:=xlWhole" gestoßen der die Problematik wohl lösen dürfte. Nur ist es mir im Moment noch nicht gegeben diesen in dem VBA Code richtig zu platzieren.
AW: suchen und ersetzen
05.11.2022 22:01:01
ralf_b
Parameter gibt man der Reihe nach an wie sie in der Hilfe gelistet sind.
Willst du die Reihenfolge nicht einhalten, schreibst du den Parameternamen gefolgt von ": = "davor. Siehe Hilfe.
In deinem Code sind schon zwei Parameter eingetragen, also viel Spaß beim ausprobieren.
Anzeige
AW: suchen und ersetzen
05.11.2022 22:06:33
onur
Einfach mal Makrorecorder einschalten, manuell "Suchen und Ersetzen" ausführen, vorher "Gesamten Zellinhalt Vergleichen" aktivieren, Makrorecorder stoppen und den entstandenen Code anschauen - dann weisst du, wie es geht.
Userbild
AW: suchen und ersetzen
05.11.2022 22:18:53
Lapos
Entweder ist es heute schon zu spät oder ich bin d... .
Habe es an verschiedenen Stellen probiert aber es tut nichts.

Public Sub searchAndReplaceFromList22()
Dim cel As Range
With Tabelle2
For Each cel In Tabelle2.Range("C1:C" & .Cells(.Rows.Count, 1).End(xlUp).Row)
With Tabelle1
Intersect(.UsedRange, .Columns("H")).Replace cel.Value2, cel.Offset(0, 1).Value2, LookAt:=xlWhole
End With
Next
End With
End Sub
Das ist vom Recorder

Selection.Replace What:="100", Replacement:="Hose", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2

Anzeige
AW: suchen und ersetzen
05.11.2022 22:22:26
onur
Zum Vorkauen hab ich weder Zeit noch Lust - poste die Datei.

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige