Excel speichern und schliessen

Speedy60

Neues Mitglied
Tag zusammen

Nach mehreren Stunden Sucharbeit habe ich immer noch keine Lösung für meinen einfachen Excelwunsch gefunden :

Ich suche eine einfache Lösung, wie ich mit einem einfachen Button die aktuelle Exceldatei speichern und gleichzeit schliessen kann.

Momentan wiederholt sich bei mir jeden Tag x-(hundert)fach immer wieder das gleiche Vorgehen :
- Datei öffnen
- Daten eingeben
- Datei speichern
- Datei schliessen
- Nächste Datei öffnen
- etc., etc., etc.

Ich bin sicher, dass es dafür schon lange eine Lösung gibt, nur habe ich Sie noch nicht gefunden !
 
ich nutze immer Tastenkürzel für Speichern und beenden:

Speichern: CTRL + S
Speichern unter...: CTRL + SHIFT + S
Beenden: ALT + F4


Kann noch hilfreich sein :P
 

1724

Stammgast
Hallo
Allenfalls könnte man dieses Problem mit einem Makro lösen:

Sub Speichern()
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

und dieses via Symbolleiste über ein Icon ansteuern...

greez
1724
 

Masche

Stammgast
Beenden: ALT + F4
Noch schneller als ALT + F4 ist CTRL + F4.

1. Hat man ja schon von CTRL + S einen Finger auf der CTRL-Taste.

2. CTRL + F4 schliesst nur die aktuelle Arbeitsmappe, nicht aber Excel selber (Speedy60 will ja gleich die nächste Datei öffnen, was mit CTRL + O auch sehr schnell geht).

Also einfach CTRL + S, dann CTRL + F4 und schliesslich CTRL + O drücken. Schneller geht es tatsächlich nur noch mit einem Makro.
 

Speedy60

Neues Mitglied
Speichern und Schliessen erweitern

Guten Tag

Wenn ich schon so gute Helfer gefunden habe, wie kann ich folgende Erweiterungen machen :

Makro 'Speichern und Schliessen' :
Makro nur durchführen wenn eine Datei geöffnet ist

Makro 'Speichern unter und Schliessen'
Wie kann ich dem Makro einen Dateinamen übergeben

Besten Dank zum Voraus

Gruss
Speedy60
 

Masche

Stammgast
@Speedy60

Was willst Du jetzt eigentlich genau. Ohne eine genauere Beschreibung ("User Requirements") kann ich Dir nicht wunschgemäss helfen.

Das Makro von 1724 erfüllt nämlich Deine ersten Anforderungen bereits, da es das aktive Arbeitsblatt speichert. Es hat nur einen kleinen Schönheitsfehler. Wenn kein Arbeitsblatt geöffnet ist, gibt es logischerweise eine Fehlermeldung. Diese kann unterdrückt werden mit der folgenden Ergänzung (rot markiert):

Sub Speichern()
On Error Resume Next
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

Meinst Du beim zweiten Beispiel jedesmal 'Speichern unter' oder nur bei einer neu erstelllten Datei? Du hast in Deinem ersten Beitrag etwas von "Datei öffnen" geschrieben. Mir ist deshalb nicht klar, willst Du jedesmal eine bestehende Datei unter einem neuen Namen abspeichern oder einer neuen Datei einen Namen geben?

Den Namen selber musst Du dem Makro nicht übergeben. Du kannst namlich mit einem Makro die 'Speichern unter' Funktion aufrufen, wenn Du das meinst.
 

Speedy60

Neues Mitglied
Speichern unter... und schliessen

Besten Dank, erstes Makro funktioniert bestens

Zu Makro 'Speichern unter... und Schliessen' :

Ich öffnen sehr oft eine Exceldatei, mache Eingaben und will diese Datei unter einem anderen Namen wieder abspeichern.

Deshalb suche ich eine einfache Variante, wie ich in einem Makro das 'Speichern unter...' mit einem freien Dateinamen gemäss Eingabe "beibringen" kann.

Besten Dank zum Voraus
 

Officer

Stammgast
Hallo Speedy60

Ich gehe einfach 'mal davon aus dass Du die Arbeitsmappen immer am gleichen Ort speicherst.

Öffne eine neue Arbeitsmappe und mache ein neues Modul auf. Kopiere dorthin:

Sub subSaveAs()
Dim strFileName As String

10 strFileName = InputBox("Dateinamen eingeben", "Dateiname")
20 If strFileName = vbNullString Then Exit Sub
30 If Right(strFileName, 4) = ".xls" Then strFileName = strFileName Else strFileName = strFileName & ".xls"
40 ActiveWorkbook.SaveAs Filename:="C:\Testpfad\" & strFileName, _
FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, _
CreateBackup:=False
50 ActiveWorkbook.Close
End Sub

Wenn Du nichts in die Inputbox eingibst dann wird auch nichts ausgeführt. Natürlich musst Du noch den Pfad ändern.
Wieder zurück in der Arbeitsmappe drückst Du Alt + F8, wählst das Makro aus, drückst unten rechts auf 'Optionen' und gib dem einen Tastaturkürzel.

Jetzt kannst Du noch folgendes machen:
Geh zum wieder zum Visual Basic Editor. Bei der Arbeitsmappe, in welche Du das obige Modul eingefügt hast, gibt es ein Objekt 'DieseArbeitsmappe'. Klicke dort doppelt und gebe dies ins Codefenster ein:

Private Sub Workbook_Open()
Me.IsAddin = True
End Sub

Speichere die Mappe dann im Ordner xlStart (ist ein Office-Standardordner - such in mal). Wenn Du jetzt Excel schliesst und wieder öffnest, wird im Hintergrund die Arbeitsmappe geöffnet und ausgeblendet. D.h. Du kannst den Benutzerkürzel immer gebrauchen...
 

Speedy60

Neues Mitglied
Abfrage leere Mappe

Noch eine Frage zu meinem Makro :

Ein Kollege hat mir den Code gegeben, wie ich absichern kann, dass bei einem Abspeichern ohne geöffnete Exceldatei keine Fehlermeldung kommt.

Gibt es auch eine Möglichkeit abzufragen, ob die aktuelle Datei leer ist ?

Gruss
Speedy60
 

Masche

Stammgast
Ich öffne sehr oft eine Exceldatei, mache Eingaben und will diese Datei unter einem anderen Namen wieder abspeichern.

Deshalb suche ich eine einfache Variante, wie ich in einem Makro das 'Speichern unter...' mit einem freien Dateinamen gemäss Eingabe "beibringen" kann.
Was verstehst Du mit "gemäss Eingabe"? Sind damit etwa die Eingaben, welche Du in das Excelfile machst (gemäss dem ersten Satz des Zitats), gemeint?
 
Oben