Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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)
Antworten 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
Antworten 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
Antworten 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
Antworten Top
#16
Hallo,

dann With ActiveSheet

Gruß Werner
Antworten Top
#17
Hallo,

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


Gruß Werner
Antworten 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
Antworten Top
#19
Hi,

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


Gehe zu:


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