Hallo.
ich brauche mal wieder eure hilfe.
wenn der benutzer auf speichern oder speichern unter klickt, will ich einen dateinamen vordefinieren. dieser dateiname setzt sich aus zelle A1, B1 und C1 zusammen. Danke für eure Hilfe.
Grüße,
Sebastian
Hallo.
ich brauche mal wieder eure hilfe.
wenn der benutzer auf speichern oder speichern unter klickt, will ich einen dateinamen vordefinieren. dieser dateiname setzt sich aus zelle A1, B1 und C1 zusammen. Danke für eure Hilfe.
Grüße,
Sebastian
Hi…
dazu müsstest Du das excelsheet schon mal gespeichert haben, sonst wird es keine Manipulation zulassen… (schreibgeschützte Eigenschaft)
Folglich müsste Dein Makro etwa so aussehen:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ChDir „D:“
filename = range(„A1“).value+range(„B1“).value+range(„C1“).value
ActiveWorkbook.SaveAs Filename:=filename, FileFormat:=xlNormal
End Sub
ERGÄNZUNG…
Das hab ich jetzt mal hinbekommen.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Not SaveAsUI Then
Cancel = True
Application.SendKeys Range(„S1“).Value 'A1, B1 und C1 verkettet!!
Application.Dialogs(xlDialogSaveAs).Show
End If
End Sub
Jedoch funktioniert dies noch nicht, wenn ich gleich Speichern unter klicke…
Da wird immer noch der aktuelle Dateiname vordefiniert.
lg,
sebastian
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Schön…zumindest ein Ansatz. und das mit dem Speichern unter…schade!!!
Danke für deine Hilfe.
Grüße,
Sebastian
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
wenn der benutzer auf speichern oder speichern unter klickt,
will ich einen dateinamen vordefinieren. dieser dateiname
setzt sich aus zelle A1, B1 und C1 zusammen.
Hi Sebastian,
probiers mal so:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error GoTo Fehler
Application.EnableEvents = False
Application.Dialogs(xlDialogSaveAs).Show ([A1] & [B1] & [C1])
Cancel = True
Fehler:
Application.EnableEvents = True
End Sub
Gruß
Reinhard
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,
Cancel As Boolean)
If Not SaveAsUI Then
Cancel = True
Application.SendKeys Range(„S1“).Value 'A1, B1 und C1
verkettet!!
Application.Dialogs(xlDialogSaveAs).Show
End If
End Sub
Jedoch funktioniert dies noch nicht, wenn ich gleich Speichern
unter klicke…
Da wird immer noch der aktuelle Dateiname vordefiniert.
Hi Sebastian,
mal als Hintergrundinformation, ich habe mich daran versucht, und an sich sollte SaveAsUI klar angeben was nun gewählt wurde. Und macht es an sich auch. Daran lags nicht.
Und ich bekam es auch recht schnell hin daß egal ob „Speichern“ oder „speichern unter“ dann das Dialogfeld mit deinen Vorgaben als Dateinamen kam.
Insofern, Problem war gelöst.
Das neue Problem war/ist, in einem Fall der beiden Möglichkeiten, vergessen welcher, kam anschließend nochmals dieses mistige Dialogfeld, und egal wie ich da „Cancel“ oder „Exit Sub“ und anderes einsetzte, es kam immer wieder im Anschluß zum ersten Dialogfeld:frowning:
Deshalb kam es dann zu einem neuen Angehen, also zu dem neuen Code ohne SaveAsUI-Auswertung.
Gruß
Reinhard
hallo reinhard.
Das neue Problem war/ist, in einem Fall der beiden
Möglichkeiten, vergessen welcher, kam anschließend nochmals
dieses mistige Dialogfeld, und egal wie ich da „Cancel“ oder
„Exit Sub“ und anderes einsetzte, es kam immer wieder im
Anschluß zum ersten Dialogfeld:frowning:
Dieses Problem hatte ich zubeginn meiner versuche ebenfalls. aber keine ahnung weshalb…
Deshalb kam es dann zu einem neuen Angehen, also zu dem neuen
Code ohne SaveAsUI-Auswertung.
habe deinen code in dem Antwort-Artikel weiter oben ausprobiert und er funktioniert sogar besser als meiner. denn als ich heute nochmals meinen code getestet habe, kam noch ein fehler, als ich das excel-dok. in ein excel-vorlage umänderte. die excel-vorlagen-datei übergab keinen dateinamen mehr.
ich wusste nicht mehr weiter und bin wieder rein ins forum und da habe ich deinen code gesehen und gleich mal ausgetestet und er funktioniert einwandfrei, unter xls, wie auch xlt.
danke für deine hilfe.
grüße,
sebastian