Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1600to1604
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
Inhaltsverzeichnis

Zelleninhalte anhand von Kriterienspalte ersetzen

Zelleninhalte anhand von Kriterienspalte ersetzen
15.01.2018 16:39:34
Kriterienspalte
Liebes Forum,
ich komme trotz langer Suche nicht weiter und hoffe, Ihr könnt mir eine Richtung nennen, in die ich weiterdenken kann. Ich denke, die Lösung für meine Aufgabe muss eigentlich relativ simpel sein - ich habe aber nur sehr bescheidene VBA Kenntnisse.
Mein Problem:
Ich habe eine umfangreiche, mehrspaltige Tabelle: Tabellenbereich A1:CZ17000. In jeder Zelle ist eine 6stellige ganze Zahl hinterlegt.
Aus dieser Tabelle möchte ich alle Werte ersetzen, die mit den Werten in einem weiteren Arbeitsblatt (nur eine Spalte A1:A220) identisch sind. Ersetzt werden sollen die Werte durch den immer gleichen Text (z.B. "##deleteValue##").
Das dürfte mit VBA doch eigentlich gar nicht so schwer sein - aber ICH kriegs nicht hin.
Vorab vielen Dank!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalte anhand von Kriterienspalte ersetzen
15.01.2018 16:52:52
Kriterienspalte
Hallo Tobias,
so:
Sub Makro1()
Dim loLetzte As Long, i As Long
With Worksheets("Tabelle1") 'Blattnamen anpassen
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 1 To loLetzte
Worksheets("Tabelle2").Cells.Replace What:=.Cells(i, 1).Value, Replacement:="## _
deleteValue##", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next i
End With
End Sub
Tabelle1 (Name anpassen) ist die Tabelle, auf der sich deine zu ersetztenden Kriterien befinden
Tabelle2 (Name anpassen) ist die Tabelle, auf der die Daten ersetzt werden.
Gruß Werner
Anzeige
nochmal neu, weil...
15.01.2018 16:55:12
Werner
Hallo Tobias,
...ich nicht aufgepasst habe beim Code kopieren und mir die Forensoftware einen Zeilenumbruch rein gemacht hat.
Sub Makro1()
Dim loLetzte As Long, i As Long
With Worksheets("Tabelle1") 'Blattnamen anpassen
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 1 To loLetzte
Worksheets("Tabelle2").Cells.Replace What:=.Cells(i, 1).Value, _
Replacement:="##deleteValue##", LookAt:=xlPart, SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next i
End With
End Sub
Gruß Werner
AW: nochmal neu, weil...
16.01.2018 10:21:06
Tobias
Hallo Werner, hallo Chris,
Ihr seid GROẞARTIG! Vielen Dank für die schnelle Antwort.
Ich habe den Code noch in folgende zwei Zeilen gebettet:

Application.DisplayAlerts = False

Oben stehender code

Application.DisplayAlerts = True
Excel gibt sonst für jede Reihe, in der nichts zum Ersetzen gefunden wird, eine Warnung aus, die man mit "ok" bestätigen muss.
Vielen Dank für Euer Engagement!
VIelen DAnk für Euer Engagement.
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
16.01.2018 10:36:39
Werner
AW: Zelleninhalte anhand von Kriterienspalte ersetzen
15.01.2018 16:55:20
Kriterienspalte
Hi
xlWhole statt xlParts ;)
Sub Makro1()
Dim lngZeile As Long
Dim WS1 As Worksheet: Set WS1 = Worksheets("Tabelle1")
Dim WS2 As Worksheet: Set WS2 = Worksheets("Tabelle2")
Application.ScreenUpdating = False
For lngZeile = 1 To WS2.Cells(Rows.Count, 1).End(xlUp).Row
WS1.Cells.Replace What:=WS2.Cells(lngZeile, 1), Replacement:="##deleteValue##", LookAt:= _
xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next lngZeile
End Sub
cu
Chris

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige