Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Speichern unter als Excel mit Makro

Speichern unter als Excel mit Makro
05.09.2013 08:20:55
Kraichtaler
Hallo und guten Morgen zusammen,
ich hab ein hoffentlich kleines Problem. Ich habe ein Excelfile das Makro´s enthält. Eines der Makro´s wird per Commandbutton gestartet. Es hat die Aufgabe, die Datei mittels "Speichern unter" mit einem bestimmten Dateinamen zu speichern, der in Zelle B47 steht. Das funktioniert soweit auch prima, nur bin ich noch nicht dahinter gekommen, wie es möglich ist, die Datei auch gleich automatisch als "Excelarbeitsmappe mit Makro´s" zu speichern.
Ich will also, dass das File gleich so abgespeichert wird, ohne dass ich das bei jedem Speichern selbst umstellen muss. Gibt es dafür nicht einen Befehl ?
Das Makro sieht übrigens so aus:

Private Sub Speichern_Click()
With Application.FileDialog(msoFileDialogSaveAs)
.Title = "Datei speichern"
.InitialFileName = Range("B47")
.ButtonName = "Jetzt speichern"
.Show
.Execute
End With
End Sub

Wär super wenn ihr mir weiterhelfen könntet.
Danke schon mal. Viele Grüße
Jürgen

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern unter als Excel mit Makro
05.09.2013 08:25:46
Hajo_Zi
Hallo Jürgen,
Excel hat auch einen Makrorecorder.
ActiveWorkbook.SaveAs Filename:="S:\Ziplies\Eigene Dateien\Mappe1.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled

AW: Speichern unter als Excel mit Makro
05.09.2013 09:01:26
Kraichtaler
Hallo Hajo,
danke für Deine Hilfe. Leider funktioniert sie bei meinem Makro nicht. Wenn ich es darin einfüge kommt die Fehlermeldung "Fehler beim Kompilieren Erwartet: Ausdruck". Kann ich den Befehl nicht einfach in mein bestehendes Makro nach der Zeile ".Show" einfügen ?
vGrüße
Jürgen

Anzeige
AW: Speichern unter als Excel mit Makro
05.09.2013 09:05:03
Hajo_Zi
Hallo Jürgen,
das liegt nicht an meiner Zeile.
Dein Code sehe ich nicht.
Gruß Hajo

AW: Speichern unter als Excel mit Makro
05.09.2013 09:08:46
Kraichtaler
Hallo Hajo,
hatte mein Makro mit in meine Anfrage gepackt. Hier ist es jetzt mit Deiner Zeile, die wie gesagt eine Fehlermeldung bringt.
Private Sub Speichern_Click()
With Application.FileDialog(msoFileDialogSaveAs)
.Title = "Datei speichern"
.InitialFileName = Range("B45")
.ButtonName = "Jetzt speichern"
FileFormat:= xlOpenXMLWorkbookMacroEnabled
.Show
.Execute
End With
End Sub
Gruß
Jürgen

Anzeige
AW: Speichern unter als Excel mit Makro
05.09.2013 09:10:46
Hajo_Zi
Hallo Jürgen,
Gut Du möchtest meine Zeile nicht benutzen. Ich kann damit Leben, ich habe nicht das Problem.
Du wolltest einen Ersatz für Deinen Code. Ich bin dann raus.
Gruß Hajo

AW: Speichern unter als Excel mit Makro
05.09.2013 09:14:52
Kraichtaler
Hallo Zusammen,
da ich Hajo nicht verstehe und er wohl nich gewillt ist, dass ich´s verstehe.....Meine Anfrage an alle nochmal. Gibt es nicht die Möglichkeit in meinem Makro das Fileformat reinzukriegen unter dem Excel speichert ?
Viele Grüße
Jürgen

Anzeige
AW: Filterindex
05.09.2013 09:39:59
hary
Moin
Hab nur 2007. Da ist der Filterindex = 2
Private Sub Speichern_Click()
With Application.FileDialog(msoFileDialogSaveAs)
.Title = "Datei speichern"
.InitialFileName = Range("B47")
.ButtonName = "Jetzt speichern"
.Show
.FilterIndex = 2 'xlm voreinstellung bei 2007
.Execute
End With
End Sub

gruss hary

Anzeige
AW: Filterindex
05.09.2013 10:08:50
Luschi
Hallo harry & Jürgen,
in Excel 2010 ist das auch noch so, aber
.FilterIndex = 2
.Show
sonst hat Filterindex keine Wirkung!!!
Gruß von Luschi
aus klein-Paris

AW: Filterindex
05.09.2013 10:54:52
Kraichtaler
Hallo hary,
genial......genau das ist es. Klasse. Vielen Dank. Das ist genau das was ich gesucht habe
viele Grüße
Jürgen

Anzeige
AW: Speichern unter als Excel mit Makro
05.09.2013 09:44:14
Rudi
Hallo,
wozu erst der Dialog?
Private Sub Speichern_Click()
ActiveWorkbook.SaveAs Filename:=Range("B47"), FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
Gruß
Rudi

AW: Speichern unter als Excel mit Makro
05.09.2013 10:56:47
Kraichtaler
Hallo Rudi,
danke auch für Deine Lösung.....es ist sogar die schnellere, wenn ich nicht doch die Möglichkeit haben will, den Dateinamen noch zu editieren.
Werde ich mir auf jeden Fall mal notieren. Danke daher.
viele Grüße
Jürgen
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Speichern unter als Excel mit Makro


Schritt-für-Schritt-Anleitung

Um ein Excel-Dokument mit einem Makro unter einem bestimmten Namen und im richtigen Format zu speichern, kannst du den folgenden VBA-Code verwenden. Dieser speichert die Datei als „Excel-Arbeitsmappe mit Makros“ (Dateiendung .xlsm):

Private Sub Speichern_Click()
    ActiveWorkbook.SaveAs Filename:=Range("B47").Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu.
  3. Kopiere den obigen Code in das Modul.
  4. Stelle sicher, dass in Zelle B47 der gewünschte Dateiname steht.
  5. Weise das Makro einem Button zu oder führe es direkt im VBA-Editor aus.

Mit diesem Makro kannst du die Datei direkt mit dem Namen aus Zelle B47 und im richtigen Format speichern.


Häufige Fehler und Lösungen

  • Fehler beim Kompilieren: Wenn du den Code in dein bestehendes Makro einfügst und eine Fehlermeldung erhältst, überprüfe die Syntax. Achte darauf, dass der Code korrekt eingegeben ist und alle Kommas und Klammern vorhanden sind.

  • Datei wird nicht im richtigen Format gespeichert: Stelle sicher, dass im FileFormat-Parameter xlOpenXMLWorkbookMacroEnabled verwendet wird. Andernfalls könnte die Datei als normale Excel-Datei ohne Makros gespeichert werden.


Alternative Methoden

Eine einfache Alternative besteht darin, den Dialog zum Speichern unter zu verwenden. Hier ist ein Beispiel, wie du das machen kannst:

Private Sub Speichern_Click()
    With Application.FileDialog(msoFileDialogSaveAs)
        .Title = "Datei speichern"
        .InitialFileName = Range("B47").Value
        .FilterIndex = 1 ' Setzt den Filter auf Excel-Dateien
        .Show
        If .SelectedItems.Count > 0 Then
            ActiveWorkbook.SaveAs Filename:=.SelectedItems(1), FileFormat:=xlOpenXMLWorkbookMacroEnabled
        End If
    End With
End Sub

Diese Methode ermöglicht es dir, den Dateinamen zu bearbeiten, bevor du speicherst.


Praktische Beispiele

  1. Speichern mit einem festen Namen: Wenn du immer die gleiche Datei speichern möchtest, kannst du den Dateinamen direkt im Code angeben:

    ActiveWorkbook.SaveAs Filename:="C:\DeinPfad\Beispiel.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
  2. Speichern unter einem dynamischen Namen: Wenn der Dateiname in einer Zelle steht, kannst du den Wert aus dieser Zelle verwenden, wie im ersten Beispiel beschrieben.


Tipps für Profis

  • Automatisches Speichern: Wenn du möchtest, dass deine Excel-Datei automatisch in bestimmten Intervallen gespeichert wird, kannst du das mit dem OnTime-Feature von VBA kombinieren.

  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um auf unerwartete Probleme zu reagieren. Beispielsweise:

On Error GoTo Fehlerbehandlung
' Dein Speichercode hier
Exit Sub

Fehlerbehandlung:
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Können Makros automatisch beim Öffnen der Datei ausgeführt werden?
Ja, du kannst ein Makro beim Öffnen einer Datei ausführen, indem du das Workbook_Open-Ereignis verwendest.

2. Wie speichere ich eine Datei ohne Dialog?
Verwende den ActiveWorkbook.SaveAs-Befehl, um die Datei sofort zu speichern, ohne dass der Benutzer interagieren muss. Stelle sicher, dass der Dateiname und das Format korrekt angegeben sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige