Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Dateiname = Inhalt Zelle
#1
Question 
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.


Gruß

Volker
Antworten Top
#2
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
Code:
sFilename = Worksheets("Tabelle1").Range("B5").Text
ersetzen.
gruß
Marco
Antworten Top
#3
Danke Versuche das gleich noch - hoffe, das klappt.

ich glaub ich mach hier grundsätzlich was falsch.

habe den Code nun wie im beigefügten jpg eingefügt.
Tabelle1 durch den richtigen "Kalkulation" ersetzt.

funzt nicht Huh


   
Antworten Top
#4
Hallo,

dir fehlt die erste Codezeile

Code:
Sub SpeichernUnter()
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#5
Und wieso hawt du hier
https://www.clever-excel-forum.de/Thread...-Dateiname
nicht mehr geantwortet? Haben dir unsere Antworten nicht gefallen? Das ist nicht die Art, wie man mit Helfern umgeht.
Schöne Grüße
Berni
Antworten Top
#6
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.

Volker
Antworten Top
#7
So ist es richtig

Code:
sFilename = Worksheets("Kalkulation").Range("B5").Text
Eine Menge reden, aber nichts sagen können viele...
Antworten Top
#8
Hallo Miteinander,

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?? Angry


An alle Helfer ganz lieben Dank für die Hilfe und auch für die bereits geposteten Antworten.


Angehängte Dateien Thumbnail(s)
       

.xlsm   VBA.xlsm (Größe: 18,89 KB / Downloads: 2)
Antworten Top
#9
Hallo,

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
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#10
   
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.


Sad 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.


Gruß Volker
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste