Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1132to1136
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei öffnen -> ändern -> speichern

Datei öffnen -> ändern -> speichern
Timothy
Hallo miteinander,
ich habe folgendes Problem:
Ich möchte gerne mit VBA eine Datei (Datei.mpr) öffnen und auslesen, in dieser Datei etwas Suchen ( Torte ="13Euro" ), bei diesem gesuchten Text den Wert in den Anführungszeichen ersetzen ( "15Euro") und dann die Datei wieder speichern (als Datei.mpr).
Das alles sollte im Hintergrund ablaufen. ZUdem kann es vorkommen das der gesuchte Begriff (Torte="13Euro) auch mehrmals in der Datei vorkommt und acuh ersetzt werden muss....
Ich habe es es mal mit .opentextfile versucht, funktioniert aber nicht ;(
Wäre super wenn mir jemand helfen könnte! Im Forum habe ich nichts gefunden...!
Danke vielmals!
AW: Datei öffnen -> ändern -> speichern
04.02.2010 14:34:58
Josef
Hallo Timothy,

dann solltest du mal so eine .mpr hochladen zum testen.

Gruß Sepp

AW: Datei öffnen -> ändern -> speichern
04.02.2010 14:45:28
Timothy
Hallo Josef,
hier die Datei, allerdings als Textdatei, da ein upload von *.mpr Dateien nicht möglich ist ;)
https://www.herber.de/bbs/user/67758.txt
keine Torte!
04.02.2010 14:55:03
Josef
Hallo Timothy,

"Torte" kann ich aber nirgendwo finden!
Sag mal genauer was gesucht und ersetzt werden soll, ich hab nämlich keine Lust, den Code zig-Mal umzustricken.

Gruß Sepp

Anzeige
AW: keine Torte!
04.02.2010 15:07:22
Timothy
;);) Erwischt ;);)
Will das alle KM="........."
=>               KM="Tischplatte"

heißen.......
Komm schon...
04.02.2010 15:15:35
Josef
... lass dir nicht alles aus der Nase ziehn!

"KM=......." finde ich nicht, aber z.B. "KM="xxx : Fertiglaenge"", soll etwa das "xxx" gegen "Tischplatte" getauscht werden?

Gruß Sepp

AW: Komm schon...
04.02.2010 15:21:03
Timothy
Nein,
KM="xxx : Fertiglaenge", KM="xxx : Zuschnittlaenge", KM="xxx : Fertigbreite",........etc.
sollen alle durch KM="Tischplatte" ersetzt werden
also eigentlich muß ich nur nach dem KM suchen, nicht nach dem ganzen string. Und alles was in den ANführungszeichen steht soll durch Tischplatte ersetzt werden!
Anzeige
AW: Komm schon...
04.02.2010 15:38:42
Josef
Hallo Timothy,

na dann probier mal.

Sub changeMPR_File()
  Dim strFile As String, strT As String
  Dim strTemp As String, strFind As String, strReplace As String
  Dim ff As Integer
  
  strFile = Application.GetOpenFilename("MPR Dateien (*.mpr),*.mpr")
  
  If strFile = CStr(False) Then Exit Sub
  
  strFind = "KM=""xxx :"
  
  strReplace = "KM=""Tischplatte:"
  
  ff = FreeFile
  
  Open strFile For Input As #ff
  Input #ff, strT
  strTemp = Replace(strT, strFind, strReplace)
  Close #ff
  
  ff = FreeFile
  
  Open strFile For Output As #ff
  Print #ff, strTemp
  Close #ff
  
End Sub

Gruß Sepp

Anzeige
AW: Datei öffnen -> ändern -> speichern
04.02.2010 15:53:47
Timothy
Hey Josef,
vielen Dank für deinen Code, aber es funktioniert leider nicht!
Wenn ich dein Code probiere:
Sub changeMPR_File()
Dim strFile As String, strT As String
Dim strTemp As String, strFind As String, strReplace As String
Dim ff As Integer
strFile = Application.GetOpenFilename("MPR Dateien (*.mpr),*.mpr")
If strFile = CStr(False) Then Exit Sub
strFind = "KM=""xxx :"
strReplace = "KM=""Tischplatte:"
ff = FreeFile
Open strFile For Input As #ff
Input #ff, strT
strTemp = Replace(strT, strFind, strReplace)
Close #ff
ff = FreeFile
Open strFile For Output As #ff
Print #ff, strTemp
Close #ff
End Sub
steht in der Datei nachher nur das:
[h

Zudem sollte ich eine Datei automatisch öffnen, also ich kenne den Pfad der Datei.... C:\Versuch\Datei.mpr.
Wie bekomme ich denn das hin?
Danke!
Anzeige
AW: Datei öffnen -> ändern -> speichern
04.02.2010 16:04:10
Josef
Hallo Timothy,

also bei mir wird aus
KM="xxx : Fertiglaenge"
ZL="L + 20"
KM="xxx : Zuschnittlaenge"
B="78"
KM="xxx : Fertigbreite"
ZB="B + 2"
KM="xxx : Zuschnittbreite"
D="68"
KM="xxx : Werkstueckdicke"
das
KM="Tischplatte: Fertiglaenge"
ZL="L + 20"
KM="Tischplatte: Zuschnittlaenge"
B="78"
KM="Tischplatte: Fertigbreite"
ZB="B + 2"
KM="Tischplatte: Zuschnittbreite"
D="68"
KM="Tischplatte: Werkstueckdicke"
das bedeutet, das dein testfile nicht dem Originalaufbau deiner .mpr's entspricht.
packe doch eine solche in ein zip-File.

Gruß Sepp

Anzeige
AW: Datei öffnen -> ändern -> speichern
04.02.2010 16:14:32
Timothy
Also bei mir funktioniert das mit dem selben Code wie du angegeben hats nicht, egal ob ich die Datei im Original lasse oder in ne Textdatei umwandle.
Aber hier nochmal die Original:
https://www.herber.de/bbs/user/67763.zip
Und wie bekomm ich es hin dass ich keine Datei auswählen muß, sondern automatisch eine öffne?
AW: Datei öffnen -> ändern -> speichern
04.02.2010 16:23:54
Josef
Hallo Timothy,

dann halt so.

Sub changeMPR_File()
  Dim strFile As String, strT As String
  Dim strTemp As String, strFind As String, strReplace As String
  Dim ff As Integer
  
  strFile = "E:\Forum\lb.mpr" 'Dateiname anpassen!
  
  strFind = "KM=""xxx :"
  
  strReplace = "KM=""Tischplatte:"
  
  ff = FreeFile
  
  Open strFile For Input As #ff
  Do While Not EOF(ff)
    Input #ff, strT
    If InStr(1, strT, strFind) > 0 Then
      strTemp = strTemp & Replace(strT, strFind, strReplace) & vbLf
    Else
      strTemp = strTemp & strT & vbLf
    End If
  Loop
  Close #ff
  
  ff = FreeFile
  
  Open strFile For Output As #ff
  Print #ff, strTemp
  Close #ff
  
End Sub

Gruß Sepp

Anzeige
AW: Datei öffnen -> ändern -> speichern
05.02.2010 13:09:29
Timothy
Hallo Sepp,
erst einmal vielen Dank. Soweit funktioniert der Code.
Aber ich möchte gerne die ganze Zeile wo "KM" steht ersetzen.
Also nicht nur wie bei deinem generierten Beispiel das xxx ersetzen..... die Inhalte in den ANführungszeichen können ja variieren (auch in der Beispieldatei).
Folgender ABlauf sollte es sein:
1. Öffne Datei
2. Suche KM= (die ganze Zeile lautet aber: KM="Hier steht irgendein Wert")
3. Ersetze KM= mit KM="Tischplatte"
4. Speichern und beenden der Datei
Ich hab das nicht hinbekommen...;(
Das muß doch auch irgendwie gehen, oder?!?
Anzeige
AW: Datei öffnen -> ändern -> speichern
05.02.2010 16:05:05
Josef
Hallo Timothy,

das geht dann so.

' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub changeMPR_File()
  Dim strFile As String, strT As String
  Dim strTemp As String, strFind As String, strReplace As String
  Dim ff As Integer
  
  strFile = "E:\Forum\lb.mpr" 'Dateiname anpassen!
  
  strFind = "KM=" 'gesuchter Teilstring
  
  strReplace = "KM=""Tischplatte:""" 'ersatzstring
  
  ff = FreeFile
  
  Open strFile For Input As #ff
  Do While Not EOF(ff)
    Input #ff, strT
    If strT Like "*" & strFind & "*" Then
      strTemp = strTemp & strReplace & vbLf
    Else
      strTemp = strTemp & strT & vbLf
    End If
  Loop
  Close #ff
  
  ff = FreeFile
  
  Open strFile For Output As #ff
  Print #ff, strTemp
  Close #ff
  
End Sub

Gruß Sepp

Anzeige
AW: Datei öffnen -> ändern -> speichern
08.02.2010 13:13:46
Timothy
Hey Sepp,
genial, das funktioniert so....!! DANKEEEEE!!!!!
Ein kleines Problem hab ich noch:
In einer Zeile in der Original-Datei (im angehängten Bild links) befindet sich ein Komma, in der erzeugten Datei wird dieses Komma als Zeilenumbruch gesehen und verschwindet ganz.
Kann man das irgendwie umgehen, also so dass es wie in der originalen Datei geschrieben wird (in einer Zeile und mit Komma)?
Userbild
AW: Datei öffnen -> ändern -> speichern
08.02.2010 16:36:12
Timothy
Ah, habe es mit Mühen gefunden!
Statt Input muß man einfach
Line Input nehmen, dann funktioniert das ganze....!!!!
Trotzdem Danke!!!!!!
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige