Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
836to840
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
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Text- Datei bearbeitet

Text- Datei bearbeitet
15.01.2007 07:52:15
Andre´
Hallo alle zusammen,
Ich habe mir folgendes Makro aufgezeichnet, wo eine Text- Datei Namens "Alle.txt" zu einer fester Spaltenbreite bearbeitet wird.

Sub Makro1()
Workbooks.OpenText Filename:= _
"D:\Bestand\Nov 06\Alle.txt", _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array( _
Array(0, 1), Array(18, 1), Array(32, 1), Array(46, 1), Array(60, 1), Array(74, 1), Array(88 _
, 1), Array(102, 1), Array(116, 1), Array(130, 1)), TrailingMinusNumbers:=True
End Sub

Das Problem ist, dass sich die Text- Datei nicht immer im selben Ordner befindet. Ich würde gern die Möglichkeit haben, dass ich den Ordner wo sich die Text- Datei befindet selbst auswählen kann und wenn die Datei gefunden wurde diese öffne, sodass dann die Bearbeitung erfolgt. Nach der automatischen Bearbeitung durch das Makro, soll die Text- Datei als Excel Datei im selben Ordner ebenfalls mit Namen "Alle.xls" gespeichert werden und geöffnet bleiben. Falls keine Text- Datei gefunden wurde und ich auf abbrechen klicke, dann soll auch nichts geschehen.
Hat jemand dafür eine Lösung.
Danke im Voraus
Andre

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text- Datei bearbeitet
15.01.2007 09:00:40
praetorius
Hallo André,
die GetOpenFilename-Anweisung öffnet dir einen Öffnendialog, ohne jedoch die Datei wirklich zu öffnen. Das musst du selbst machen. Versuch es mal mit dem folgenden Code:

Sub DateiOeffnen()
Dim textdatei
textdatei= Application.GetOpenFilename("Textdatei (*.txt), *.txt", _
Title:="Textdatei auswählen", _
MultiSelect:=False)
'Wenn du auf Abbrechen gedrückt hast, ist textdatei false und es passiert nichts
If textdatei<> False Then
'Datei öffnen und bearbeiten
Workbooks.OpenText Filename:= textdatei, _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array( _
Array(0, 1), Array(18, 1), Array(32, 1), Array(46, 1), Array(60, 1), Array(74, 1), Array(88 _
, 1), Array(102, 1), Array(116, 1), Array(130, 1)), TrailingMinusNumbers:=True
{Hier erfolgt deine Bearbeitung}
'Speichern der Datei im Excelformat
ThisWorkbook.Saveas Filename:=left(textdatei, len(textdatei) - 3) & ".xls"
End If
End Sub

good luck
Anzeige
AW: Text- Datei bearbeitet
15.01.2007 09:49:57
Andre´
Hallo,
danke für die Meldung. Mit dem öffnen und der Bearbeitung klappt es ganz gut. Ich habe dein Makro in ein Modul einer Test.xls ausgeführt, dabei wird die bestehende Test.xls Datei als Alle..xls abgespeichert und die eigentliche Text- Datei wurde noch nicht als Alle.xls gespeichrt.
Kannst du mir bitte diesbezüglich noch einen Tipp geben!
Danke
Andre
AW: Text- Datei bearbeitet
15.01.2007 10:06:45
praetorius
Hallo André,
das Problem mit dem doppelten Punkt ist einfach zu lösen (siehe Quellcode). Wenn du die Datei vor der Bearbeitung als Exceldatei speichern willst, dann musst du die zweite Anweisung "ThisWorkbook.Saveas ..." löschen; willst du die Datei erst nach der Bearbeitung speichern, dann die erste Anweisung. Lässt du den Quellcode so ablaufen, wie er ist, wird die Datei einmal vor der Bearbeitung im Excelformat gespeichert, dann bearbeitet und anschließend nochmal unter dem selben Namen gespeichert. Die erste Datei wird also überschrieben.

Sub DateiOeffnen()
Dim textdatei
textdatei= Application.GetOpenFilename("Textdatei (*.txt), *.txt", _
Title:="Textdatei auswählen", _
MultiSelect:=False)
'Wenn du auf Abbrechen gedrückt hast, ist textdatei false und es passiert nichts
If textdatei<> False Then
'Datei öffnen und bearbeiten
Workbooks.OpenText Filename:= textdatei, _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array( _
Array(0, 1), Array(18, 1), Array(32, 1), Array(46, 1), Array(60, 1), Array(74, 1), Array(88 _
, 1), Array(102, 1), Array(116, 1), Array(130, 1)), TrailingMinusNumbers:=True
'Speichern der Datei im Excelformat vor der Bearbeitung
ThisWorkbook.Saveas Filename:=left(textdatei, len(textdatei) - 3) & "xls"
{Hier erfolgt deine Bearbeitung}
'Speichern der Datei im Excelformat nach der Bearbeitung
ThisWorkbook.Saveas Filename:=left(textdatei, len(textdatei) - 3) & "xls"
End If
End Sub

Anzeige
AW: Text- Datei bearbeitet
15.01.2007 11:51:39
Andre´
Hallo,
der doppelte Punkt ist nicht das Problem.
Vielleicht habe ich mich etwas schlecht ausgedrückt. Ohne Makro gehe ich wie folgt vor: Ich möchte eine txt. Datei mit Excel bearbeiten. Dazu öffne ich Excel gehen auf Datei öffnen, suche den Pfad wo diese Datei steht, öffne diese Datei, dann erscheint der Textkonvertierungs- Assistent wo ich dann die Spalten einrichten kann. Wenn ich nun speichern will kommt die Abfrage: Alle.txt kann Merkmale enthalten, die mit Text (Tabstopp-getrennt) Nicht kompatibel ist. Möchten sie die Arbeitsmappe in diesem Format speichern?...
Da ich das Excel- Format haben möchte klicke ich auf nein worauf sich der Pfad öffnet, wo die TXT- Datei steht. Dann gebe ich den Dateityp vor: Microsoft Excel-Arbeitsmappe(*.xls) und der Dateiname wird von der TXT- Datei schon vorgegeben, dann speichern.
So sollte es mit dem Makro laufen.
MFG
Andre
Anzeige
AW: Text- Datei bearbeitet
15.01.2007 13:58:45
praetorius
Hallo André,
genauso sollte es eigentlich mit dem angegebenen Code funktionieren. Die Variable 'textdatei' enthält eine Zeichenkette, in der der gesamte Pfad mit Laufwerksangabe und Dateiname der txt-Datei steht. Dem Befehl 'ThisWorkbook.Saveas' wird als Parameter der komplette Pfad der Textdatei angegeben. Lediglich die drei letzten Zeichen (txt) werden durch xls ersetzt. Daran merkt Excel, dass die Datei im Excelformat gespeichert werden soll.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige