05.01.2018, 19:03 (Dieser Beitrag wurde zuletzt bearbeitet: 05.01.2018, 19:03 von Klaus-Dieter.)
Hallo,
versuche es mal damit:
Code:
Sub wechseln()
Dim c As Range
Dim firstadress As String
With Tabelle1.Range("B15:B33") ' Bereich anpassen
Set c = .Find("BKK Deutsche_BKK", LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
firstAddress = c.Address
Do
If CDate(Tabelle1.Cells(c.Row, 10)) > "31.12.2016" Then Tabelle1.Cells(c.Row, 2) = "Barmer"
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub
Viele Grüße
Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
na ja, dein Datenbereich beginnt ja auch erst in Zeile 15 und nicht in Zeile 2. Dadurch, dass du aber Zeile 2 als Beginn der Range drin hattest, läuft der Code bei der Prüfung des Datums in Zeile 14 Spalte J auf den Texteintrag "Aufnahme" und somit in einen Fehler.
Code:
Public Sub Ersetzen_Deutsche_BKK_ab_1_1_2017()
Dim loLetzte As Long, raBereich As Range, raZelle As Range
Application.ScreenUpdating = False
With Worksheets("Entl") 'Tabellennamen anpassen
loLetzte = .Cells(.Rows.Count, 10).End(xlUp).Row
Set raBereich = .Range(.Cells(15, 10), .Cells(loLetzte, 10))
For Each raZelle In raBereich
If CDate(raZelle) > "31.12.2016" Then
raZelle.Offset(, -8).Replace What:="BKK Deutsche_BKK", Replacement:="Barmer", LookAt:=xlPart
End If
Next raZelle
End With
Set raBereich = Nothing
Application.ScreenUpdating = True
End Sub