Microsoft Excel

Herbers Excel/VBA-Archiv

Zeilenweise Ersetzen in Abhängigkeit vom Zellwert | Herbers Excel-Forum


Betrifft: Zeilenweise Ersetzen in Abhängigkeit vom Zellwert von: Björn
Geschrieben am: 23.07.2012 12:32:16

Moin liebe Gemeinde,

ich hoffe, Ihr könnt mir bei meinem Problem weiterhelfen:

Ich habe einer großen Menge von Zellen eine Auswahlbox im Rahmen der Datenüberprüfung zugeordnet. Die zugeordnete Liste ist eine Liste an verketteten Werten aus einem anderen Blatt. Nun kann es dazu kommen, dass sich die Werte der Verkettungen ändert. Das klappt hinsichtlich der Auswahlliste auch prima. Leider sind aber nun noch die alten Werte in dem eigentlichen Auswahlblatt enthalten, die alle auf den aktuellen Wert angepasst werden müssen.

Ich möchte also Folgendes:
Wenn im Blatt A in einer Zeile in Spalte C der Wert "X" ist, dann suche in Blatt B (überall) nach dem Wert der Spalte A aus Blatt A und ersetze ihne durch den Wert der Spalte B aus Blatt A.

.....die ganze Nummer dann natürlich Zeilenweise, denn die Auswahlliste hat schon ein paar mehr Einträge :-)

Es wäre schön, wenn einer von Euche eine zündende Idee hat.

Vielen Dank im Voraus
VG
Björn

  

Betrifft: AW: Zeilenweise Ersetzen in Abhängigkeit vom Zellwert von: fcs
Geschrieben am: 23.07.2012 17:33:58

Hallo Björn,

wär nett, wenn du eine Beispieltabelle mit ein Paar Testdaten hier hochlädst. Das erleichtert es, dir mit einem entsprechenden Makro auszuhelfen.

Gruß
Franz


  

Betrifft: AW: Zeilenweise Ersetzen in Abhängigkeit vom Zellwert von: fcs
Geschrieben am: 23.07.2012 22:02:06

Hallo Björn,

ich hab es jetzt versucht im Blindflug umzusezen.

Gruß
Franz

Sub Prueferwerte_anpassen()
  Dim wksA As Worksheet, wksB As Worksheet
  Dim lngRow As Long, StatusCalc As Long
  Dim varFind As Variant, varReplace
  Set wksA = Worksheets("Blatt A") 'Blattname ggf. anpassen
  Set wksB = Worksheets("Blatt B") 'Blattname ggf. anpassen
  With Application
    .EnableEvents = False
    .ScreenUpdating = False
    StatusCalc = .Calculation
    .Calculation = xlCalculationManual
  End With
  With wksA
    For lngRow = 2 To .Cells(.Rows.Count, 3).End(xlUp).Row 'Startzeile ggf. anpassen
      If LCase(.Cells(lngRow, 3).Value) = "x" Then
        varFind = .Cells(lngRow, 1).Value
        varReplace = .Cells(lngRow, 2).Value
        With wksB.UsedRange'Bereich ggf. etwas genauer festlegen
          .Replace what:=varFind, Replacement:=varReplace, lookat:=xlWhole
        End With
      End If
    Next lngRow
  End With
  With Application
    .EnableEvents = True
    .ScreenUpdating = True
    .Calculation = StatusCalc
  End With
End Sub



Beiträge aus den Excel-Beispielen zum Thema "Zeilenweise Ersetzen in Abhängigkeit vom Zellwert"