Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel-Makro speichert nicht (sehr merkwürdig)

Forumthread: Excel-Makro speichert nicht (sehr merkwürdig)

Excel-Makro speichert nicht (sehr merkwürdig)
17.07.2002 14:04:53
Oliver
Hallo miteinand. Ich habe ein MAkro geschrieben welches eigentlich die Datei speichern soll. Es wird wundersamerweise jedoch nicht gespeichert. Der Name der Datei wird über Variablen definiert. Hat jemand eine Idee wo der Wurm sitzt? Vielen Dank.

Oliver


Dim dGS$
dGS = Worksheets(2).Range("d2")

' Soll eigentlich die Datei mit richtigem Dateinamen speichert. Datei wird aber
' NICHT gespeichert.

Dim Speichern
Dim dateiname
dateiname = ("Abgleich_" & dGS & "_" & dName & ".xls")
Speichern = Application.GetSaveAsFilename(initialfilename:=dateiname, _
fileFilter:=("Excel-Arbeitsmappe(*.xls),*.xls"), _
Title:=("Die Datei bitte unter einem anderen Dateinamen abspeichern."))
If Speichern = False Then Exit Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Excel-Makro speichert nicht (sehr merkwürdig)
17.07.2002 14:08:54
Uwe Doerl
Du solltest deine Datei dann auch wirklich speichern, wenn du den Namen gecheckt hast.

ActiveWorkbook.SaveAs Filename:=dateiname, FileFormat:=xlText, CreateBackup:=False
ActiveWorkbook.Saved = True

Gruss

Re: Excel-Makro speichert nicht / Problem gelöst
17.07.2002 14:31:41
Oliver
Vielen Dank,

hat funktioniert :-)

Oliver

Re: Excel-Makro speichert nicht (sehr merkwürdig)
17.07.2002 14:32:06
sam
hi,
was Oliver sagen will ist, dass GetSaveAsFilename nur einmal den Namen ermittelt. SaveAs-Funktion speichert die Mappe.
Sam
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Excel-Makro speichert nicht – Lösungen und Tipps


Schritt-für-Schritt-Anleitung

  1. Überprüfe den Dateinamen: Stelle sicher, dass der Dateiname korrekt generiert wird. Im Beispiel wird der Dateiname mit Variablen erstellt:

    Dim dGS$
    dGS = Worksheets(2).Range("d2")
    Dim dateiname
    dateiname = ("Abgleich_" & dGS & "_" & dName & ".xls")
  2. Verwendung von GetSaveAsFilename: Diese Funktion zeigt das Dialogfeld "Speichern unter" an, speichert aber die Datei nicht direkt. Achte darauf, dass du den Rückgabewert überprüfst und die Datei tatsächlich speicherst:

    Dim Speichern
    Speichern = Application.GetSaveAsFilename(initialfilename:=dateiname, _
       fileFilter:=("Excel-Arbeitsmappe(*.xls),*.xls"), _
       Title:=("Die Datei bitte unter einem anderen Dateinamen abspeichern."))
    If Speichern = False Then Exit Sub
  3. Datei speichern: Verwende die SaveAs-Methode, um die Datei tatsächlich zu speichern:

    ActiveWorkbook.SaveAs Filename:=dateiname, FileFormat:=xlExcel8, CreateBackup:=False
    ActiveWorkbook.Saved = True

Häufige Fehler und Lösungen

  • Fehler 1: Datei wird nicht gespeichert: Wenn das Makro nicht die Datei speichert, könnte dies daran liegen, dass die GetSaveAsFilename-Funktion nur den Dateinamen abruft, ohne die Datei zu speichern. Stelle sicher, dass du die SaveAs-Methode verwendest.

  • Fehler 2: Falsches Dateiformat: Überprüfe das angegebene Format in der SaveAs-Methode. Verwende xlExcel8 für .xls-Dateien oder xlOpenXMLWorkbook für .xlsx-Dateien.


Alternative Methoden

  • Direktes Speichern: Anstelle von GetSaveAsFilename kannst du auch direkt unter einem festen Namen speichern, wenn du keine Benutzerinteraktion benötigst:

    ActiveWorkbook.SaveAs Filename:="C:\Pfad\zu\deiner\Datei.xlsx", FileFormat:=xlOpenXMLWorkbook
  • Fehlerprotokollierung: Füge eine einfache Fehlerbehandlung hinzu, um Probleme besser zu identifizieren:

    On Error GoTo FehlerHandler
    ' Dein Code hier
    Exit Sub
    FehlerHandler:
    MsgBox "Fehler: " & Err.Description

Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie du ein Makro erstellen kannst, welches eine Excel-Datei speichert:

Sub SpeichernMakro()
    Dim dGS$
    dGS = Worksheets(2).Range("d2")
    Dim dateiname
    dateiname = ("Abgleich_" & dGS & "_" & dName & ".xls")

    Dim Speichern
    Speichern = Application.GetSaveAsFilename(initialfilename:=dateiname, _
        fileFilter:=("Excel-Arbeitsmappe(*.xls),*.xls"), _
        Title:=("Die Datei bitte unter einem anderen Dateinamen abspeichern."))

    If Speichern = False Then Exit Sub
    ActiveWorkbook.SaveAs Filename:=Speichern, FileFormat:=xlExcel8, CreateBackup:=False
    ActiveWorkbook.Saved = True
End Sub

Tipps für Profis

  • Variablen korrekt deklarieren: Stelle sicher, dass du die Variablen im richtigen Datentyp deklarierst, um unerwartete Fehler zu vermeiden.

  • Makros optimieren: Teste dein Makro in einer neuen Arbeitsmappe, um sicherzustellen, dass es unabhängig von anderen Makros funktioniert.

  • Regelmäßige Sicherungen: Um Datenverlust zu vermeiden, implementiere eine Backup-Option in deinem Makro.


FAQ: Häufige Fragen

1. Warum speichert mein Makro die Datei nicht?
Die GetSaveAsFilename-Funktion zeigt nur das Dialogfeld an, speichert aber nicht direkt. Stelle sicher, dass du die SaveAs-Methode verwendest.

2. Kann ich das Dateiformat ändern?
Ja, du kannst das Dateiformat in der SaveAs-Methode anpassen, z.B. zu xlOpenXMLWorkbook für .xlsx-Dateien.

3. Wie kann ich sicherstellen, dass der Dateiname gültig ist?
Verwende eine Funktion, die ungültige Zeichen im Dateinamen entfernt, bevor du die Datei speicherst.

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