Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1788to1792
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 als csv ablegen

Datei als csv ablegen
27.10.2020 19:17:26
Christian
Hallo Ihr Guten,
ich habe eine Excel-Datei in einer bereits bestehenden Ordner-Struktur. Gibt es per VBA eine Möglichkeit, diese aus der Excel-Datei per Makro an den gleichen Speicherort als csv-Datei abzulegen?
Ich komme mit meinen eigenen Gedanken leider nicht sehr weit und freue mich über jede Hilfe.
Vielen Dank im Voraus,
Christian

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei als csv ablegen
27.10.2020 19:22:12
Hajo_Zi
Hallo Christian,
benutze den Makrorecorder.

AW: Datei als csv ablegen
27.10.2020 19:23:28
Daniel
Hi
Datei öffnen und mit "Speichern unter" an gleicher Stelle als CSV-Datei speichern (kann man mit dem Recorder aufzeichnen)
um Pfad und Dateinamen zu ermitteln um daraus den neuen Speichernamen zu erzeugen stehen dir die Workookeigenschaften:
.Name (Dateiname)
.Path (Pfad)
.FullName (Pfad\Dateiname)
zur verfügung.
Hilft dir das weiter?
Gruß Daniel
AW: Datei als csv ablegen
27.10.2020 19:30:33
Christian
Hi Daniel,
stimmt - vielen Dank für die schnelle Antwort.
Vielleicht denke ich jetzt nicht ganz richtig, aber so lege ich die Datei doch immer an die gleiche Stelle ab, oder? Ich suche jedoch nach einer Möglichkeit, mit der man den Speicherort der jeweiligen Excel "herausliest" und dann dort auch den Speicherort für die csv wählt... wenn so etwas geht.
Viele Grüße
Christian
Anzeige
AW: Datei als csv ablegen
27.10.2020 19:32:43
Daniel
die Frage ist, wo genau willst du den Speicherort herauslesen?
Gruß Daniel
AW: Datei als csv ablegen
27.10.2020 20:00:35
Christian
Hey, ich in meiner Welt habe gedacht... die Excel-Datei 1 ist unter C\Ordner1\Tag1 gespeichert, während die Excel-Datei 2 im Ordner Tag2 abliegt. In beiden würde ich also gerne eine csv in den jeweils richtigen Ordner dazulegen. Hier müsste ein Makro ja zunächst den Speicherort der Excel herauslesen, oder?
Viele Grüße
Christian
AW: Datei als csv ablegen
27.10.2020 20:13:17
Daniel
wo herauslesen?
Woraus soll der Ordner herausgelesen werden?
aus deinem Kopf?
aus einer bereits geöffneten Datei?
bitte klar formulieren was du haben willst, das ist die Grundvoraussetzung zum Programmieren.
ThisWorkbook ist die Datei, die das Makro erhält.
ThisWorkbook.Name ist der Dateiname dieser Datei
ThisWorkbook.Path ist der Speicherpfad, unter dem diese Datei gespeichert ist
ThisWorkbook.Fullname ist die Kombination aus Speicherpfad und Dateiname.
funktioniert natürlich auch mit ActiveWorkbook.
Gruß Daniel
Anzeige
AW: Datei als csv ablegen
28.10.2020 07:59:29
Christian
Hallo Daniel,
da hast Du natürlich recht. Als Laie glaubt man manchmal einfach zu schnell, dass das Problem relativ eindeutig zu sein scheint. Ich meinte aus der geöffneten Excel heraus.
Deine Hinweise helfen mir aber glaube ich schon mal einen Schritt weiter und ich probiere mich jetzt einfach mal aus.
Danke Dir sehr bis hierhin.
Viele Grüße
Christian
AW: Datei als csv ablegen
28.10.2020 09:08:23
Christian
Hey, ich habe das Thema (für mich klappt es zumindest) nun so gelöst:
Dim FName As String
FName = ActiveWorkbook.Path & "\" & Left(ActiveWorkbook.Name, _
InStr(ActiveWorkbook.Name, ".")) & _
"csv"
ActiveSheet.Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=FName, FileFormat:=xlCSV
Application.DisplayAlerts = True
ActiveWorkbook.Close False
Vielen Dank für die Hinweise!
Christian
Anzeige
AW: Datei als csv ablegen
28.10.2020 09:26:10
Daniel
Hi
ja, im Prinzip so.
das ".csv" am ende brauchst du nicht, das fügt Excel beim Speicher Unter automatisch und damit passend zum gewählten Dateityp hinzu.
in Verbindung mit FullName wird's dann noch einfacher:
FName =ActiveWorkbook.FullName
FName = Left(FName, InstrRev(FName, ".") - 1)

InstrRev ist hier vorzuziehen, weil es den Text vom Ende her beginnend durchsucht und somit sicher den Punkt der Dateierweiterung findet, denn mittlerweile sind Punkte im Dateinamen auch an anderer Stelle erlaubt und dann würde Instr den falschen Punkt finden.
bzw, wenn du dir sicher bist, dass du nicht mehr mit alten xls-Dateiformaten arbeitest:
FName = Left(ActiveWorkbook.Fullname, Len(ActiveWorkbook.FullName) - 4)
Gruß Daniel
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige