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

Speichern unter mit Dateinamen aus Zelle

Speichern unter mit Dateinamen aus Zelle
17.11.2021 22:42:29
Edmund
Ich gebe zu, sehr viel Ahnung habe ich nicht von VBA, habe es aber doch immer hin bekommen mit einigen Versuchen.
Nun stehe ich aber vor einem Problem, dass ich leider nicht gelöst bekommen.
Ich möchte ein Exel - Programm schließen und unter einem vorgegebenen Namen ( aus einer Zelle ) auf einer bestimmten Stelle der Festplatte als .xlsm abspeichern.
Hier mein Versuch:

Sub Berechnung_speichern()
antwort = MsgBox("Berechnung für" & vbLf & Sheets("Eingabe").Range("D9") & vbLf & "speichern?", vbExclamation + vbYesNoCancel, "Tool")
If antwort = 6 Then
ThisWorkbook.SaveAs
Dim NeuerName As String, Speicherpfad As String
Speicherpfad = "C:\\Test\Berechnungen\"
NeuerName = Sheets("Eingabe").Range("D9")
ActiveWorkbook.SaveAs Filename:=NeuerName
End If
If antwort = 7 Then
ThisWorkbook.Saved = True
Application.Quit
ElseIf antwort = 2 Then
End If
End Sub
Die MsgBox bringt mir den Namen unter den ich die Datei abspeichern möchte, speichert aber nicht den Namen der Berechnung sondern immer den Namen des Programmes.
Der Namen, unter dem gespeichert werden soll, befindet sich im Blatt " Eingabe" Feld D9
Bitte formuliert die Antworten so, dass ich sie verstehen kann :-)
Danke für die Hilfe

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern unter mit Dateinamen aus Zelle
18.11.2021 00:15:27
ralf_b
den code in das Codemodul von DieseArbeitsmappe bzw. Thisworkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Berechnung_speichern
End Sub
Sub Berechnung_speichern()
Dim NeuerName As String, Speicherpfad As String, antwort
antwort = MsgBox("Berechnung für" & vbLf & Sheets("Eingabe").Range("D9").value & vbLf & "speichern?", vbExclamation + vbYesNoCancel, "Tool")
Select Case antwort
Case 6
Speicherpfad = "C:\Test\Berechnungen\"
NeuerName =Sheets("Eingabe").Range("D9").value
ActiveWorkbook.SaveAs Filename:=Speicherpfad & NeuerName, FileFormat:=xlOpenXMLWorkbookMacroEnabled
Case 7
ThisWorkbook.Saved = True
Application.Quit
Case Else
End Select
End Sub

Anzeige
AW: Speichern unter mit Dateinamen aus Zelle
18.11.2021 10:11:12
Edmund
Super, vielen Dank
Das Programm speichert nun mit dem Namen an dem richtigen Ort, leider aber nicht als Exel Datei sondern nur als "Datei" ohne Endung
Um die Berechnung wieder in Exel aufrufen zu können muss ich sie ja im Exelformat .xslm abspeichern.
Noch eine Frage: Wenn die Datei bereits vorhanden ist, wird sie ohne zu fragen überschrieben?!
Kann man auch den Namen nur als Speichervorschlag machen?
Wenn ich dann noch bei Rückantwort 6 ein "Application.Quit" einbaue, sollte dann auch das Programm schließen?!
Danke übrigens auch für die für mich verständliche Antwort
Edmund
Anzeige
AW: Speichern unter mit Dateinamen aus Zelle
18.11.2021 13:30:01
Edmund
Das mit der Endung .xlsm habe ich hinbekommen. Programm speichert nun die richtige Datei mit dem richtigen Namen an der richtigen Stelle.

Sub Berechnung_speichern()
Dim NeuerName As String, Speicherpfad As String, antwort
antwort = MsgBox("Berechnung für" & vbLf & Sheets("Eingabe").Range("D9").Value & vbLf & "speichern?", vbExclamation + vbYesNoCancel, "Tool")
Select Case antwort
Case 6
Speicherpfad = "C:\Test\Berechnungen\"
NeuerName = Sheets("Eingabe").Range("D9").Value
ActiveWorkbook.SaveAs Filename:=Speicherpfad & NeuerName & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
Application.Quit
Case 7
ThisWorkbook.Saved = True
Application.Quit
Case Else
End Select
End Sub
Alles Super bis hier hin.
Leider läuft das Programm in einen Fehler, wenn die zu speichernde Datei mit dem gleichen Namen bereits vorhanden ist und ich auf "nicht speichern" gehe :-(
Toll währe es, wenn vor dem Speichern die Möglichkeit besteht den Namen noch zu ändern.
Anzeige
AW: Speichern unter mit Dateinamen aus Zelle
18.11.2021 19:06:55
ralf_b
Hallo Edmund,
tut mir echt leid das ich nicht mehr in den code geschrieben habe als du anfänglich wolltest. Das mit der Endung funktioniert bei meinen Tests auch ohne das ".xlsm". Da ich das Dateiformat hinten drangehängt habe.
Das man eine Datei gleichen Namens nicht nochmal an den selben Platz speichern kann, ohne das irgendwer meckert ist eigentlich klar. Anders wäre es wenn nur ein save machst und nicht das Saveas. Dafür wäre eine Namensprüfung nötig. z.b. mittels dir() -Funktion
gruß
rb
AW: Speichern unter mit Dateinamen aus Zelle
19.11.2021 22:25:18
Edmund
Hallo Ralf,
da muss dir nichts leid tun, bist ja kein Hellseher. Und wenn ich mich nicht klar ausdrücke oder selber nicht weiß was ich will, hast du es schwer mir zu helfen.
Aber das Teil macht jetzt schon zu 90 % was es soll.
Es speichert mir die Datei dahin wo ich sie haben will, mit dem Namen des Objektes, dem Datum der Berechnung, und dem Bearbeiter. Sollt nun eigentlich keine Doppelten mehr vorkommen.
Nun würde ich gerne, bevor gespeichert wird, abfangen wenn im Feld "Eingabe D9" nichts steht, soll das Programm einen Hinweis geben ( Antwort2 ) und nichts machen. Bei meinem Versuch speichert mir das Programm aber leider eine Datei ohne Namen, aber mit Datum und Bearbeiter.
Das Programm soll eigentlich nur vor dem speichern überprüfen, ob in dem Feld was steht oder nicht.
Steht dort etwas kann es zum speichern gehen, steht dort nichts, einfach Box schließen und nichts machen.

Sub Berechnung_speichern()
Dim NeuerName As String, Speicherpfad As String, antwort
antwort = MsgBox("Berechnung für" & vbLf & Sheets("Eingabe").Range("D9").Value & vbLf & "speichern?", vbExclamation + vbYesNoCancel, "ImmoGrandeTool")
Select Case antwort
Case 6
Speicherpfad = "C:\ImmoGrandeTool\Berechnungen\"
NeuerName = Sheets("Eingabe").Range("D9").Value
ActiveWorkbook.SaveAs Filename:=Speicherpfad & NeuerName & " - " & Date & " - " & Sheets("Eingabe").Range("G27") & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
Application.Quit
Case 7
ThisWorkbook.Saved = True
Application.Quit
Case Else
End Select
End Sub
Das funktioniert perfekt !!
Nun mein Versuch :-(

Sub Berechnung_speichern()
'speichert die aktuelle Berechnung mit dem Namen des Objekte, dem aktuellen Datum und dem Namen des Bearbeiters
'im Ordner C:\ImmoGrandeTool\Berechnungen
Dim NeuerName As String, Speicherpfad As String, antwort1, antwort2
antwort1 = MsgBox("Berechnung für" & vbLf & Sheets("Eingabe").Range("D9").Value & vbLf & "speichern?", vbExclamation + vbYesNoCancel, "ImmoGrandeTool")
'Wenn das Feld "Objekt" (Eingabe D9) keine Daten enthält, wird ein MsgBox mit einem Fehler angezeigt
'und das Speichern wird abgebrochen.
If WorksheetFunction.CountA(Sheets("Eingabe").Range("D9")) 
Es währe toll, wenn du mir noch einmal auf die Sprünge helfen könntest.
Viele Grüße
Edmund
Anzeige
AW: Speichern unter mit Dateinamen aus Zelle
19.11.2021 22:36:04
ralf_b

If Sheets("Eingabe").Range("D9").value="" Then
MsgBox("Berechnung kann nicht gespeichert werden" & vbLf & _
"Es wurde keine Adresse angegeben!", vbCritical + vbOKOnly, "ImmoGrandeTool")
exit sub
End If

AW: Speichern unter mit Dateinamen aus Zelle
19.11.2021 23:10:24
Edmund
wo packe ich das hin ?
In welche Zeile?
sorry
Edmund
AW: Speichern unter mit Dateinamen aus Zelle
19.11.2021 23:16:21
ralf_b
da wo es vorher stand
AW: Speichern unter mit Dateinamen aus Zelle
20.11.2021 00:56:56
Edmund
Danke, läuft super !!!

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige