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

Forumthread: Über VBA Button Datei Speichern unter

Über VBA Button Datei Speichern unter
Kallermann
Hallo,
ich würde gerne einen Formularbutton erstellen der meine Datei abspeichert. Und zwar soll der Dateiname aus dem Inhalt der Zelle M/23 verwendet werden.
Nochmal zum genauen Verständnis:
Ich erstelle meine Datei, gebe meine Daten ein usw. Dann möchte ich auf einen Button klicken. Dieser soll meine Datei unter einem neuen Namen abspeichern. Der Inhalt der Zelle M/23 soll gleich der neue Dateiname sein.
Wie stelle ich das am Besten an ?
Ich habe von VBA leider wenig Ahnung.
Ich wäre über rasche Hilfe sehr dankbar.
Viele Grüße Kallermann
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Über VBA Button Datei Speichern unter
Ich
Hi, mein beitrag hat sich erledigt. Das nächste mal stöbere ich vorher und schreibe dann.
Gruß Kallermann
AW: Über VBA Button Datei Speichern unter
23.03.2004 14:32:36
Andrea
Hallo Kallermann
Versuch's mit untenstehendem Code. Du kannst diesen einfach bei den Modulen unter VB einfügen. Gruss Andrea

Sub Export()
On Error Resume Next
Dim Dateiname As String
Range("M23").Select
Dateiname = Range("M23")
ChDrive "c"
ChDir "c:\temp"
ActiveWorkbook.SaveAs Filename:=Dateiname, FileFormat:=xlExcel5, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
'nachfolgender Code vermeidet die nochmalige Frage, ob die Datei gespeichert werden soll.
Application.DisplayAlerts = False
ActiveWindow.Close
'die nächste Zeile wird benötigt, dass überhaupt wieder nach Speichern gefragt wird
Application.DisplayAlerts = True
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Button zum Speichern von Excel-Dateien


Schritt-für-Schritt-Anleitung

Um einen VBA-Button zu erstellen, der deine Excel-Datei unter einem bestimmten Namen speichert, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein Modul hinzu: Klicke mit der rechten Maustaste im Projektfenster, wähle „Einfügen“ und dann „Modul“.

  3. Kopiere den folgenden Code in das Modul:

    Sub Export()
        On Error Resume Next
        Dim Dateiname As String
        Range("M23").Select
        Dateiname = Range("M23")
        ChDrive "c"
        ChDir "c:\temp"
        ActiveWorkbook.SaveAs Filename:=Dateiname, FileFormat:=xlExcel5, _
        Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False
        Application.DisplayAlerts = False
        ActiveWindow.Close
        Application.DisplayAlerts = True
    End Sub
  4. Füge einen Button hinzu: Gehe zurück zu Excel, wähle die Registerkarte „Entwicklertools“, klicke auf „Einfügen“ und wähle „Button (Formularsteuerung)“.

  5. Verknüpfe den Button mit dem Code: Ziehe den Button auf dein Arbeitsblatt und wähle den Export-Code aus der Liste aus.

  6. Teste den Button: Klicke auf den Button, um die Datei unter dem Namen in Zelle M23 zu speichern.


Häufige Fehler und Lösungen

  • Fehler: „Dateiname ungültig“
    Lösung: Stelle sicher, dass der Inhalt von Zelle M23 einen gültigen Dateinamen enthält (keine Sonderzeichen oder Leerzeichen am Anfang/Ende).

  • Fehler: „Speichern unter nicht möglich“
    Lösung: Prüfe, ob der Ordner „C:\temp“ existiert. Falls nicht, erstelle ihn oder ändere den Pfad im Code.

  • Fehler: „VBA-Fehler 1004“
    Lösung: Dieser Fehler tritt auf, wenn der VBA-Code auf das Arbeitsblatt nicht zugreifen kann. Stelle sicher, dass das Arbeitsblatt aktiv ist.


Alternative Methoden

Falls du nicht mit VBA arbeiten möchtest, kannst du auch die „Speichern unter“-Funktion manuell nutzen oder eine Excel-Makro-Aufzeichnung verwenden. Hier sind die Schritte für die Makro-Aufzeichnung:

  1. Aktiviere die Makro-Aufzeichnung: Gehe zu „Entwicklertools“ und klicke auf „Makro aufzeichnen“.
  2. Führe die Schritte aus: Speichere die Datei manuell unter dem gewünschten Namen.
  3. Beende die Aufzeichnung: Klicke auf „Makro aufzeichnen“ und wähle „Beenden“.

Du kannst das aufgezeichnete Makro dann jederzeit ausführen.


Praktische Beispiele

  1. Datei in einem neuen Ordner speichern: Ändere den Pfad im VBA-Code zu einem anderen Verzeichnis, um die Datei dort zu speichern.
  2. Dateiformat ändern: Passe den FileFormat im Code an, um unterschiedliche Formate wie .xlsx oder .xlsm zu speichern. Beispiel:

    ActiveWorkbook.SaveAs Filename:=Dateiname, FileFormat:=xlOpenXMLWorkbook

Tipps für Profis

  • Fehlerbehandlung: Erweitere den Code mit spezifischen Fehlerbehandlungsroutinen, um besser auf mögliche Probleme reagieren zu können.

  • Dynamische Dateinamen: Füge Zeitstempel oder andere dynamische Elemente in den Dateinamen ein, um Überschreibungen zu vermeiden:

    Dateiname = Range("M23") & "_" & Format(Now(), "YYYYMMDD_HHMMSS")
  • Schutz für sensible Daten: Wenn deine Datei sensible Informationen enthält, füge eine Passwortschutzfunktion hinzu.


FAQ: Häufige Fragen

1. Wie kann ich den Speicherort im Code ändern?
Ändere den ChDir "c:\temp"-Befehl in den gewünschten Ordnerpfad.

2. Funktioniert das auch in Excel 365?
Ja, der Code funktioniert in Excel 365 sowie in älteren Versionen, die VBA unterstützen.

3. Kann ich mehrere Zellen als Dateinamen verwenden?
Ja, du kannst die Inhalte mehrerer Zellen kombinieren, um einen Dateinamen zu erstellen, z.B. Dateiname = Range("M23") & "_" & Range("N23").

4. Was passiert, wenn der Dateiname bereits existiert?
Der Code schließt die Datei automatisch, ohne eine Warnung anzuzeigen. Du kannst das Verhalten anpassen, wenn du eine Abfrage einfügen möchtest.

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