ChDir klappt nicht immer
 |
Betrifft: ChDir klappt nicht immer
von: Uschi
Geschrieben am: 07.09.2004 09:47:55
Hallo Forum,
mein Problem ist Folgendes:
Ich muß ständig *.txt Dateien (aus einem Export) per 'speichern unter' in *.xls Dateien umwandeln. Das wollte ich nun über ein Makro lösen. Nun bekomme ich aber immer wieder Fehlermeldungen, daß auf ein Verzeichnis nicht zugegriffen werden könnte. Wenn ich das Makro starte, bin ich in verschiedenen Verzeichnissen. Kann ich Excel nicht genau angeben, wo die *.xls Datei gespeichert werden soll? Der Name der Datei soll immer der Gleiche wie der der txt Datei sein, also: beispiel.txt -->beispiel.xls.
Bei folgendem Code kommt immer mal wieder die Fehlermeldung: "kann auf ... Verzeichnis nicht zugreifen". Manchmal klappt es aber auch.
Sub xls_speichern()
ChDir "C:\temp\"
ActiveWorkbook.SaveAs _
FileFormat:=xlExcel7
End Sub
Danke schon mal!
Gruß
Uschi
Betrifft: CHDIR brauchst Du doch gar nicht ...
von: Volker Croll
Geschrieben am: 07.09.2004 10:00:35
Hallo Uschi,
gib doch den Dateinamen bei SAVEAS direkt an. Siehe Auszug aus der Online-Hilfe:
SaveAs-MethodeAusdruck.SaveAs(Filename, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AddToMru, TextCodePage, TextVisualLayout)
...
Filename Variant optional. Eine Zeichenfolge, die den Namen der zu speichernden Datei angibt.
Sie können den vollständigen Pfad angeben. Andernfalls speichert Microsoft Excel die Datei im aktuellen Ordner ...
Gruss
Volker Croll
www.crolltools.de
Betrifft: AW: CHDIR brauchst Du doch gar nicht ...
von: Uschi
Geschrieben am: 07.09.2004 11:32:17
Aber den Dateinamen soll das Makro doch automatisch vergeben. Der kann sich ja schon ändern. Wie mache ich das denn dann?
Sub xls_speichern()
ActiveWorkbook.SaveAs _
FileFormat:=xlExcel7
End Sub
So bekomme ich auch manchmal Fehlermeldungen.
Gruß
Uschi
Betrifft: ThisWorkbook.Name ...
von: Volker Croll
Geschrieben am: 07.09.2004 11:45:06
Hallo Uschi,
dann muesste es so funktionieren (den Pfad bitte noch anpassen!):
ActiveWorkbook.SaveAs "C:\Eigene Dateien\" & ThisWorkbook.Name, FileFormat:=xlExcel7
Gruss
Volker Croll
www.crolltools.de
Betrifft: AW: ThisWorkbook.Name ...
von: Uschi
Geschrieben am: 07.09.2004 12:43:20
Hallo Volker,
Danke für Deine Tips. Aber es klappt nicht wirklich.
Jetzt bekomme ich die Meldung, daß nicht unter dem Namen einer bereits geöffneten Datei gespeichert werden kann. Selbst wenn ich ein anderes Verzeichnis als das der .txt Datei auswähle.
Gruß
Uschi
Betrifft: Kann ich nicht nachvollziehen ...
von: Volker Croll
Geschrieben am: 07.09.2004 12:57:24
Hallo Uschi,
beschreibe bitte nochmal
genau Deinen Ablauf. So wie ich Dich bisher verstanden habe, muesste es funktionieren. Also liegt der Hase woanders im Pfeffer.
Gruss
Volker Croll
www.crolltools.de
Betrifft: AW: Kann ich nicht nachvollziehen ...
von: Uschi
Geschrieben am: 07.09.2004 13:31:44
Also: Ich öffne eine txt Datei in Excel und möchte die mittels Makro als Excel-Datei mit dem gleichen Namen wie die txt Datei speichern. Speicherort soll C:\temp\ sein. Die ursprüngliche txt-Datei liegt auch in C:\temp. Das ist schon alles.
Betrifft: Und wo liegt das Makro?
von: Volker Croll
Geschrieben am: 07.09.2004 15:09:55
Hallo Uschi,
zu welcher Datei gehoert denn das Makro, mit dem Du dies alles machst?
Gruss
Volker Croll
www.crolltools.de
Betrifft: AW: Und wo liegt das Makro?
von: Uschi
Geschrieben am: 08.09.2004 07:56:28
Hallo Volker,
sorry das ich mich gestern nicht mehr gemeldet habe.
Das Makro liegt in der Personl.xls, wie alle meine Makros.
Gruß
Uschi
Betrifft: Dann so ...
von: Volker Croll
Geschrieben am: 08.09.2004 18:57:49
Hallo Uschi,
war heute fast den ganzen Tag unterwegs, deshalb erst jetzt meine Antwort.
Klar, wenn das Makro in der Personal.xls liegt, kann es nicht funktionieren; denn ThisWorkbook.Name bezieht sich ja dann auf die Personal.xls!
Aber wenn Du die Text-Datei oeffnest, musst Du ja schon irgendwie den Dateinamen ausgelesen haben; vielleicht steht er ja sogar schon in einer Variablen (nennen wir sie mal
NameDerDatei).
Dann muesste folgendes passen:
ActiveWorkbook.SaveAs "C:\Eigene Dateien\" & NameDerDatei, FileFormat:=xlExcel7
Solltest Du damit auch nicht weiterkommen, dann - wie schonmal erbeten - den
genauen Ablauf, sprich zumindestens auch den Teil des Makros angeben, mit dem Du die Datei oeffnest.
Gruss
Volker Croll
www.crolltools.de
Betrifft: AW: Dann so ...
von: Uschi
Geschrieben am: 09.09.2004 11:10:35
Hallo Volker,
Danke erstmal für Deine Antworten und Deine Mühe.
Ich lese den Dateinamen nirgends aus. Ich öffne die txt Datei ganz normal, manuell, nicht per Makro. Indem ich sie aus dem Windows-Explorer in das Excel-Fenster ziehe. Ich hatte gestern auch gemerkt, daß als ThisWorkbook.Name der Name der Personl.xls gewertet wurde. Ich weiß ehrlich gesagt nicht, wie ich noch genauer mein Vorgehen schildern soll. Vielleicht so:
Excel ist offen. Ich ziehe die txt Datei ins Excel Fenster. Sie ist also als txt geöffnet und in Excel als txt aktiv.
Und jetzt kommt der Teil, den ich gerne als Makro hätte:
Ich gehe auf speichern unter, wähle bei Dateityp Excel behalte den Namen der txt Datei bei und sage speichern. Und habe so aus einer beispiel.txt eine beispiel.xls gemacht.
Gruß
Uschi
Betrifft: Wir schaffen's schon noch ...
von: Volker Croll
Geschrieben am: 09.09.2004 14:39:03
Hallo Uschi,
teste bitte mal:
ActiveWorkbook.SaveAs "C:\Eigene Dateien\" & Mid(ActiveWorkbook.Name, 1, Len(ActiveWorkbook.Name) - 4), FileFormat:=xlExcel7
Zur Erklaerung:ActiveWorkbook.Name liefert den ganzen Dateinamen incl. Dateiendung (.txt)
Deshalb wird mit LEN die komplette Anzahl Zeichen des Dateinamens festgestellt und um 4 Zeichen (.txt) gekuerzt. Die Endung .xls haengt Excel durch "FileFormat:=xlExcel7" automatisch an.
Gruss
Volker Croll
www.crolltools.de
Betrifft: AW: Wir schaffen's schon noch ...
von: Uschi
Geschrieben am: 10.09.2004 08:12:33
Hallo Volker,
es klappt!!!!!!!!!!!!! :-)
Super, und nochmals vielen Dank für Deine Geduld mit meinem Problem.
Sorry auch, daß ich mich immer nur so sporadisch gemeldet habe, aber ich hatte zwischendurch eingfach keine Zeit.
Gruß
Uschi
Betrifft: Gern geschehen ! (oT)
von: Volker Croll
Geschrieben am: 10.09.2004 08:58:39