Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1652to1656
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

SaveAs mit variablem Pfad

SaveAs mit variablem Pfad
31.10.2018 09:10:41
SebastianMB
Hallo,
folgendes Problem habe ich. Ich öffne durch anklicken einer Schaltfläche eine dat.-Datei. Diese wird dann in Excel ausgewertet. Am Ende der Auswertung soll die dat.-Datei in dem selben Ordner mit der Endung .xlsm gespeichert werden.
Mit der SaveAs-Anweisung bekomme ich es nur hin wenn ich den Code und Name ein gebe. Dieser sollte aber ausgelesen werden und als Variable gespeichert werden. Ich hoffe mir kann jemand hlefen.
ActiveWorkbook.SaveAs "C:\beispiel.xlsm"
Anbei der Ausschnitt des Codes:
Public Sub importMessdaten()
Dim Arr2
'Dim A
Dim Datei2
Dim FSO2
Dim L2 As Long
Dim Tmp2 As Variant
Dim vnt_Ausgabe2 As Variant
Dim I2 As Integer
Dim Str_String2 As String
Dim dateiname2 As String
Dim z2 As Integer
'#############################
'Zweite datei einfügen
Application.ScreenUpdating = False
dateiname2 = Application.GetOpenFilename
Set FSO2 = CreateObject("Scripting.FilesystemObject")
Set Datei2 = FSO2.OpentextFile(dateiname2) 'Anpassen
Str_String2 = Datei2.readall
Datei2.Close
'#####################
Arr2 = Split(Str_String2, vbCrLf) 'Nach Datensätzen splitten
ReDim vnt_Ausgabe2(UBound(Arr2), 200) '200 Spalten reichen ?
For L2 = 0 To UBound(Arr2)
Tmp2 = Split(Arr2(L2), ",") 'Jeden Datensatz nach Werten splitten
For I2 = 0 To UBound(Tmp2)
vnt_Ausgabe2(L2, I2) = Tmp2(I2) 'Jeden Wert in das Array vnt_Ausgabe umschaufeln
Next
Next
'Ausgeben. Anpassen.
Sheets.Add
ActiveSheet.Name = "Import Messdaten"
Sheets("Import Messdaten").Range("A1").Resize(UBound(vnt_Ausgabe2) + 1, UBound(vnt_Ausgabe2, 2)) = vnt_Ausgabe2

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SaveAs mit variablem Pfad
31.10.2018 09:18:10
Hajo_Zi
ActiveWorkbook.SaveAs "C:\" & Range(A1") & ".xlsm"
ich hätte den Code benutzt, den der Makrorecorder aufzeichnet.
ActiveWorkbook.SaveAs Filename:= _
"W:\Eigene Dateien\Hajo\Internet\Test\2018\Woche\Forum 44.xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: SaveAs mit variablem Pfad
31.10.2018 09:19:47
Daniel
Hi
du kannst den speichernamen beliebig aus Fixtext und Variablen zusammenstellen:
dim Datei as string
Datei = "Beispiel"
ActiveWorkbook.SaveAs "C:\" & Datei & ".xlsm"
wobei man beim Speichern unter aber immer das FileFormat angeben und die Dateiweiterung im Speichernamen weglassen sollte. Diese wird dann automatisch und passend zum gewählten Dateityp angehängt:
dim Datei as string
Datei = "Beispiel"
ActiveWorkbook.SaveAs "C:\" & Datei, FileFormat:=xlOpenXMLWorkbookMacroEnabled
Gruß Daniel
Anzeige
AW: SaveAs mit variablem Pfad
31.10.2018 09:29:50
SebastianMB
Hi Daniel,
vielen Dank für deine schnelle Hilfe. Wie kann ich jetzt in meinem Code, den Pfad der dat.-Datei als Variable speichern und diese dann verwenden? Ich hoffe du verstehst was ich meine.
Lieber Gruß
AW: SaveAs mit variablem Pfad
31.10.2018 09:37:32
Daniel
Hi
soweit ich das verstehe, hast du den vollständigen Dateinamen mit GetOpenFileName in die Variable Dateiname2 eingelesen.
wenn du hierzu den Pfad brauchst, musst du den String entsprechend kürzen, an der Position des letzten "\".
Diese bekommst du mit InstrRev
Pfad = Left(Dateiname2, InstrRev(Dateiname2, "\") - 1)
wenn du den Pfad mit "\" beenden willst, lässt du das -1 weg.
Gru8´Daniel
Anzeige
AW: SaveAs mit variablem Pfad
31.10.2018 09:59:58
SebastianMB
Hi,
ich glaub jetzt wird es peinlich und es zeigt mal wieder wie wenig Ahnung ich habe.
Wenn ich folgendes eingebe. Wird die Datei als "Pfad" im richtigen Ordner abgespeichert.
pfad = Left(dateiname2, InStrRev(dateiname2, "\") - 1)
ActiveWorkbook.SaveAs pfad
Sie soll aber wie die Ausgangsdatei heißen. Ich stehe wirklich auf dem schlauch.
Gruß
AW: SaveAs mit variablem Pfad
31.10.2018 10:29:48
Daniel
peinlich, ich weiß jetzt nicht, was "Ausgangsdatei" ist.
wie man dann an den Pfad noch den Dateinamen dran hängt, hatte ich dir doch schon gezeigt.
Gruß Daniel
AW: SaveAs mit variablem Pfad
31.10.2018 13:16:27
SebastianMB
Hallo Daniel,
ich meinte, dass es langsam für mich peinlich wird.
ich möchte dir nochmal kurz erläutern woran es bei mir scheitert.
Durch die Schaltfläche wird die Datei im dat.-Format in meine Excel Auswertung geladen. Diese wird dann verarbeitet und soll anschließend im selben Ordner, mit dem selben Namen, nur in einem anderen Format gespeichert werden. Soweit ist es denke ich klar.
Beispiel:
Ausgangsdatei = DF46573.dat
Excel Auswertung = Vorlage_Auswertung.xltm
Ausgewertete Datei = DF46573.xlsm
Der Pfad wird in der Variablen "dateiname2" gespeichert und sieht folgendermaßen aus:
J:\Werte\DF46573
und nun zu meinem Problem. Ich habe es bis jetzt nur geschafft, dass die Datei den Namen des Pfades hat und sich im richtigen Ordner befindet. Wie kann ich es hinbekommen, dass nur der letzte Teil des Pfades als Name verwendet wird. Also das hier = DF46573.xlsm
Die Auswertungsdatei liegt im xltm-Format vor.
Vielen Dank für deine Geduld.
Liebe Grüße
Anzeige
AW: SaveAs mit variablem Pfad
31.10.2018 13:26:18
Daniel
du kennst instrRev um die Postion des letzten "\" zu finden.
alles, was sich links davon befindet, ist Pfad (zu ermitteln mit der VBA-Funktion LEFT) alles was sich rechts davon befindet, ist Dateiname (zu Ermitteln mit der VBA-Funktion MID)
damit solltest du in der Lage sein, aus einem vollständigen Dateinamen je nach Wunsch den Pfad oder den Dateinnamen auszulesen und dir den neuen Speichernamen entsprechend zusammen zu setzen.
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige