471 Aufrufe
Gefragt in Tabellenkalkulation von
Bitte um Unterstützung

Ich übernehme ein Variable von einer Datei, schreibe diese in eine andere Datei.
Bis dahin funktioniert das.
Dann soll diese Variable als Dateiname verwendet werden.
Da Verzeichnis soll als Variable in einer Inputbox erstellt werden un diese aktive Datei darin
gespeichert werden.

Das Abspeichern funktioniert nicht.

Der Code

Dim RechnungsNr_Neu As String

Dim Speicherpfad As String

RechnungsNr_Neu = ActiveCell.Value ' Schreibt neue Rechnungsnummer als Variable (wegen
Übergabe in Rechnung)

Windows("Rechnungsvorlage.xlsm").Activate

Worksheets("Rechnung").Activate

Cells(22, 2).Activate

Cells(22, 2) = RechnungsNr_Neu

RechnungsNr_Neu = ActiveCell.Value

Speicherpfad = InputBox("Berichtigen Sie den Speicherort mit dem aktuellen Rechnungsjahr",
"Eingabe Rechnungsjahr", "F:\Ferienwohnung\1 Uebernachtungen\3 Belegung Eingabe\4
Rechnungen\ 2017\")


ActiveWorkbook.SaveAs FileName:=Speicherpfad & RechnungsNr_Neu & ".xlsm"

3 Antworten

0 Punkte
Beantwortet von
Hallo,

sieht soweit OK aus. Vorausgesetzt der Pfad wurde korrekt eingegeben
und endet mit einem "\". Statt der Inputbox könntest du auch
de/library/office/ff834966.aspx">GetOpenFilename verwenden.

Was dir allerdings fehlt ist der wichtige Parameter
de/library/office/ff198017.aspx">Fileformat. Für eine xlsm-Datei
müsste die Zeile so lauten.

ActiveWorkbook.SaveAs FileName:=Speicherpfad &
RechnungsNr_Neu & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled

Gruß Mr. K.
0 Punkte
Beantwortet von
Hallo

danke für die Antwort

funktioniert leider nicht

Meldung Laufzeitfehler 1004

Excel kann auf die Datei F:\ ....\105EDB10 nicht zugreifen

Meine Datei hab ich ich Test.xlsm genannt und sollte aus der Celle R -
2017 - 004 schreiben und unter diesem Namen in den Ordner, vorbelegt
in der Inputbox abspeichern.

Der Backlash ist auch in der Vorbelegung der Inputbox.

Hab deinen Code drangehängt.

Da es ja bis zum Speichern funktioniert hat, habe ich für den
nicht funktionierenden Teil ein extra Makro zum Experimentieren
gemacht.

Unten nochmals mit deinem eingefügten Code.

Wie würde das ganze mit GetOpenFilename aussehen.

Bin nicht ganz so fit drauf


Sub Test()

Dim Speicherpfad As String
Dim RechnungsNr_Neu As String


Cells(22, 2).Activate


RechnungsNr_Neu = Cells(22, 2)


RechnungsNr_Neu = ActiveCell.Value

Speicherpfad = InputBox("Berichtigen Sie den Speicherort mit dem
aktuellen Rechnungsjahr", "Eingabe Rechnungsjahr",
"F:\Ferienwohnung\1 Uebernachtungen\3 Belegung Eingabe\4
Rechnungen\ 2017\")



ActiveWorkbook.SaveAs FileName:=Speicherpfad &
RechnungsNr_Neu & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled

End Sub

Gruß Franz
0 Punkte
Beantwortet von
Sorry ich meinte natürlich
GetSaveAsFilenameus/library/office/aa195748(v=office.11).aspx">GetSaveAsFilename
.

Sollte eigentlich funktionieren. Probiers mal so:
Speicherpfad =
Application.GetSaveAsFilename(RechnungsNr_Neu, _
"Exceldateien (*.xlsx), *.xlsx,Exceldateien mit Makro (*.xlsm), .xlsm",
2)

Select Case Right(Speicherpfad, 4) = "xlsm"
Case "xlsm"
ff = xlOpenXMLWorkbookMacroEnabled
Case "xlsx"
ff = xlOpenXMLWorkbook
End Select

ActiveWorkbook.SaveAs Filename:=Speicherpfad, _
FileFormat:=ff, CreateBackup:=False
Testen kann ichs leider
grade nicht, da ich eine ältere Excel-Version habe.
...