Hallo Excel Team, hatte schon einen Thread verfasst bei dem ich mich diesbezüglich verzettelt habe.
Ich habe eine Zelle mit "Artikelnummer" als Text formatiert da die Nummer auch alphanumerische Inhalte haben kann. Diese Zelle "B5" möchte ich nun dazu verwenden, dass wenn ich auf die Ecxel-Schaltfläche "speichern unter" klicke, dass als Dateiname schon die "Artikelnummer" geschrieben ist.
(Schön wäre wenn ich noch den Pfad angeben könnte) muss aber nicht zwingend sein. Möchte das so "schlank" als möglich haben.
25.07.2019, 15:23 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2019, 15:23 von Mase.)
Hi Volker,
da ich auf diese Threads achte, aufgrund meiner Beteiligung, wäre ich Dir verbunden, wenn Du Feedback geben würdest. Selbst wenn Du den Thread als erledigt kennzeichnest. Ist doch fair oder ? Eine Prozedur könnte folgendermaßen ausschauen:
Code:
Sub SpeichernUnter() 'dek Dim sFilename As String Dim v As Variant 'def sFilename = Tabelle1.Range("B5").Text v = Application.GetSaveAsFilename(sFilename, "Excel-Datei, *.xlsx", 1) ' If Not v = False Then ThisWorkbook.SaveCopyAs v End If End Sub
Hinweis: Tabelle1 bezieht sich auf den Codenamen. Hilfsweise kannst Du Tabelle1 auch durch
Hallo Bernie, sorry fürs nicht weiterführen des Threads. War heute extrem im Zeitdruck mit der Tabelle und nix funktionierte wie ich das wollte!
Mit den rauskopierten Code dachte ich dann, dass das der komplette Schwachsinn ist den ich hier gefunden habe. Mit VBA / Modulen kenn ich gar gar gar nicht aus.
Sorry hätte mich wirklich bedanken sollen und das Thema schließen.
ich werde noch zum Hirsch. Beigefügt mal die vba.xlsm (denke, das passt mit der Dateiendung?) Weiterhin den Screen wo ich den Code eingefügt habe! Und den Speichern unter Dialog - bei dem immer noch VBA.xlsm und nicht der "Inhalt Zelle B5" als Dateinamen angezeigt wird.
Ich bekomme keine Fehlermeldung nix - weis auch nicht ob der Code / Makro überhaupt angestoßen wird
was mach ich denn falsch??
An alle Helfer ganz lieben Dank für die Hilfe und auch für die bereits geposteten Antworten.
dieses Makro musst Du aus DieseArbeitsmappe entfernen und in einem allgemeinen Modul (VBA-Editor - Menüleiste den Punkt Einfügen auswählen - Modul) einfügen und da immer staten. Wenn Du es über den Speichern unter-Dialog machen willst, füge dieses Makro in dem Klassenmodul DieseArbeitsmappe ein
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 'dek Dim sFilename As String Dim v As Variant 'def sFilename = Worksheets("Kalkulation").Range("B5").Text v = Application.GetSaveAsFilename(sFilename, "Excel-Datei, *.xlsx", 1) ' If Not v = False Then ThisWorkbook.SaveCopyAs v End If End Sub
Hallo Steffel - danke schon mal für Deine Mühe mir als "VBA Greenhorn" zu helfen.
beigefügt nochmal das nun hoffentlich richtig und am richtigen ort eingefügte Klassenmodul.
Du schreibst "und da immer staten"
wo denn / wie denn. Muss ich hier eine Schlatfläche einbauen (in die Mappe) oder in die Menüleste von Excel als ICON und dann das Makro starten??
.. geht das nicht wenn ich in der geöffneten Arbeitsmappe nur auf das Icon speichern unter klicke.
bei mir ist das nun eingefügt - hat sich aber noch keine Veränderung im "speichern unter Dialog" ergeben - sprich es wird immer noch die alte Dateinamen "VBA" als Dateinamen vorgegeben.