habe hier folgenden Code gefunden jedoch müsste es abgeändert werden damit der Text in B2 auch bei Leer- oder Sonderzeichen die Zeichenfolge ersetzt. Wenn z.B. nur Marker15 in B2 steht schreibt das Makro die neue Zeichenfolge in B3 immer wieder dazu und löscht es nicht.
In B2 steht: Marker15 KFZ Haus Bank Geschäft
In B3 steht: Marker15 KFZ Firma Haus Schiff
In der Textdatei steht irgendwo: Marker15 Auto Bau Straße;Meer
Nun soll die komplette Zeichenfolge (kompl. Zeile) in der Textdatei durch den Inhalt in B3 ersetzt werden.
Habe das nicht hinbekommen.
Danke vorab!
Grüße CaseII
Code:
Sub SubstituteSave()
Dim arr() As String
Dim iCounter As Integer
Dim sSource As String, sTarget As String, sTxtA As String
Dim sTxtB As String, sTxt As String, sPath As String
sPath = ThisWorkbook.Path & "\"
sSource = sPath & Range("b1").Value ' Name der Textdatei
sTarget = sPath & Range("b4").Value ' Neuer Name der Textdatei
sTxtA = Range("b2").Value ' alter Text
sTxtB = Range("b3").Value ' neuer Text
Close
Open sSource For Input As #1
Do Until EOF(1)
Line Input #1, sTxt
If InStr(sTxt, sTxtA) Then
sTxt = Replace(sTxt, sTxtA, sTxtB)
End If
iCounter = iCounter + 1
ReDim Preserve arr(1 To iCounter)
arr(iCounter) = sTxt
Loop
Close
Open sTarget For Output As #1
For iCounter = 1 To UBound(arr)
Print #1, arr(iCounter)
Next iCounter
Close
On Error GoTo ERRORHANDLER
Shell "notepad " & sTarget, vbMaximizedFocus
Exit Sub
ERRORHANDLER:
MsgBox " Job erledigt!"
End Sub