Clever-Excel-Forum

Normale Version: Per VBA in Zeile suchen und String ersetzen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Werner,

suche gerade, wie ich die Datei hochladen kann.

Muss sie vorher aber auch noch neutralisieren.

Viele Grüße

Excelbeginner
Jetzertle,

die gelbe Zeile soll gewandelt werden.

Excelbeginner
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
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
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
Hallo,

dann With ActiveSheet

Gruß Werner
Hallo,

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


Gruß Werner
Hallo,

ganz herzlichen Dank an alle, insbesondere Werner!

Funktioniert tadellos.

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

Viele Grüße

Excelbeginner
Hi,

Du kannst aber auf das Usertreffen kommen und dort eine Runde ausgeben!
Seiten: 1 2