Per VBA in Zeile suchen und String ersetzen
#11
Hallo Werner,

suche gerade, wie ich die Datei hochladen kann.

Muss sie vorher aber auch noch neutralisieren.

Viele Grüße

Excelbeginner
Top
#12
Jetzertle,

die gelbe Zeile soll gewandelt werden.

Excelbeginner


Angehängte Dateien
.xlsx   Test_Kostenträger_2.xlsx (Größe: 11,7 KB / Downloads: 9)
Top
#13
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
Top
#14
Hallo,

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



Gruß Werner
Top
#15
Blöder Fehler mit der Startzeile.

Super, beide Vorschläge funktionieren.

Ich habe noch einen Fehler gefunden, ich muss >= "01.01.2017" nehmen, da ansonsten die Umwandlung ab 31.12.2016 00:01 erfolgt.

@Werner: was muss ich statt
Code:
Worksheets("Entl")

eingeben, damit das Programm im gerade geöffneten Worksheet arbeitet?

Excelbeginner
Top
#16
Hallo,

dann With ActiveSheet

Gruß Werner
Top
#17
Hallo,

du könntest auch die Zeit mit aufnehmen
Code:
> "31.12.2016 23:59"


Gruß Werner
Top
#18
Hallo,

ganz herzlichen Dank an alle, insbesondere Werner!

Funktioniert tadellos.

Schade, dass man hier keine Runde Bier ausgeben kann  :43: 

Viele Grüße

Excelbeginner
Top
#19
Hi,

Du kannst aber auf das Usertreffen kommen und dort eine Runde ausgeben!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste