Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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!
Anzeige

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
Anzeige
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
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige