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

VBA "Speichern unter" ohne Bestätigungsfenster

Forumthread: VBA "Speichern unter" ohne Bestätigungsfenster

VBA "Speichern unter" ohne Bestätigungsfenster
Giuseppe
Hallo Excel-Freunde
Ich habe ein leicht abgeändertes Makro, um die aktuelle Tabelle woanders abspeichern zu können:
Sub SpeichernUnter()
Dim varRetVal As Variant, strInitFileName As String, Datname As String
Dim Pfad As String
Pfad = Sheets("Start").Range("Q25")
Datname = Sheets("Start").Range("M25") & ".xlsm"
varRetVal = Application.GetSaveAsFilename( _
InitialFileName:=Pfad & Datname, _
FileFilter:="Microsoft Excel-Dateien (*.xlsm), *.xlsm", _
Title:="Datei speichern unter... ")
If varRetVal = False Then Exit Sub
ActiveWorkbook.SaveAs varRetVal
End Sub
Nun erscheint am schluss jedoch ein Fenster, um die Datei entgültig zu speichern.
Kann man dieses "Bestätigen" irgendwie automatisieren? (Ohne Bestätigungsfenster)
Toll währe es noch, wenn dann genau diese "kopie" dann noch aufgestartet würde...
Das Grundoriginal sollte ohne speichern beendet werden...
Bitte um Hilfestellung
Grüsse Salnet
Anzeige
AW: VBA "Speichern unter" ohne Bestätigungsfenster
12.07.2011 12:02:27
Cardexperte
Hallo Di Salvo,
hast du mal versucht ein Return direkt mit sendkeys an Excel zu schicken,
schau mal in der hilfe nach, dieses Kommando muss dann vor der Zeile mit
ActiveWorkbook.saveAs kommen.
Gruss WS
AW: VBA "Speichern unter" ohne Bestätigungsfenster
12.07.2011 12:15:40
Rudi
Hallo,
wozu das?
  varRetVal = Application.GetSaveAsFilename( _
InitialFileName:=Pfad & Datname, _
FileFilter:="Microsoft Excel-Dateien (*.xlsm), *.xlsm", _
Title:="Datei speichern unter... ")
If varRetVal = False Then Exit Sub

Gruß
Rudi
Anzeige
AW: VBA "Speichern unter" ohne Bestätigungsfenster
12.07.2011 12:48:04
Giuseppe
Neu:
Sub SpeichernUnter()
Dim Datname As String
Dim Pfad As String
Pfad = Sheets("Start").Range("Q25")
Datname = Sheets("Start").Range("M25") & ".xlsm"
ActiveWorkbook.SaveAs
End Sub

@Rudi
Funktioniert nun, ohne Bestätigungsfenster... DANKE!
Doch leider stimmt der Dateiname nicht - siehe: Datname = Sheets("Start").Range("M25") & ".xlsm"
Die neue Datei hat den selben Namen, wie das Grundoriginal...
@Cardexperte
SendKeys String:="{Enter}", Wait:=True
SendKeys "{Enter}"
SendKeys Enter
Funktioniert nicht
Grüsse Salnet
Anzeige
AW: VBA "Speichern unter" ohne Bestätigungsfenster
12.07.2011 13:16:31
Rudi
Hallo,
.SaveAs erfordert den Dateinamen.
Sub SpeichernUnter()
Dim Datname As String
Dim Pfad As String, strSep As String
strSep = Application.PathSeparator
Pfad = Sheets("Start").Range("Q25")
If Right(Pfad, 1)  strSep Then Pfad = Pfad & strSep
Datname = Sheets("Start").Range("M25") & ".xlsm"
ActiveWorkbook.SaveAs Pfad & Datname
End Sub

Gruß
Rudi
Anzeige
AW: VBA "Speichern unter" ohne Bestätigungsfenster
12.07.2011 13:46:06
Giuseppe
Danke Rudi
Nun ist es genau so, wie es sein sollte :-)
Grüsse Salnet

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA "Speichern unter" ohne Bestätigungsfenster


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei über VBA "Speichern unter" ohne Bestätigungsfenster zu speichern, kannst du folgendes Makro verwenden. Dieses Beispiel geht davon aus, dass der Zielpfad und der Dateiname in den Zellen Q25 und M25 auf dem Blatt "Start" stehen.

Sub SpeichernUnter()
    Dim Datname As String
    Dim Pfad As String, strSep As String
    strSep = Application.PathSeparator
    Pfad = Sheets("Start").Range("Q25").Value
    If Right(Pfad, 1) <> strSep Then Pfad = Pfad & strSep
    Datname = Sheets("Start").Range("M25").Value & ".xlsm"
    ActiveWorkbook.SaveAs Pfad & Datname
End Sub

Dieses Skript speichert die aktive Arbeitsmappe unter dem angegebenen Pfad und Dateinamen, ohne ein Bestätigungsfenster anzuzeigen.


Häufige Fehler und Lösungen

  1. Dateiname wird nicht korrekt übernommen
    Wenn der Dateiname nicht richtig gespeichert wird, überprüfe, ob die Zelle M25 den gewünschten Namen enthält. Stelle sicher, dass das Makro die Zelle korrekt referenziert.

  2. Fehlermeldung beim Speichern
    Wenn eine Fehlermeldung erscheint, überprüfe, ob der angegebene Pfad in der Zelle Q25 gültig ist. Der Pfad muss existieren und Schreibrechte müssen vorhanden sein.


Alternative Methoden

Eine andere Möglichkeit, um die Datei ohne Bestätigungsfenster zu speichern, ist die Verwendung von SendKeys. Allerdings ist diese Methode nicht immer zuverlässig. Hier ein Beispiel:

Sub SpeichernUnterMitSendKeys()
    Dim Datname As String
    Dim Pfad As String
    Pfad = Sheets("Start").Range("Q25").Value
    Datname = Sheets("Start").Range("M25").Value & ".xlsm"
    ActiveWorkbook.SaveAs Pfad & Datname
    SendKeys "{ENTER}", True
End Sub

Diese Methode kann jedoch zu unerwarteten Ergebnissen führen und ist daher nicht empfohlen.


Praktische Beispiele

Angenommen, du möchtest deine Datei unter einem spezifischen Namen speichern, der auf dem aktuellen Datum basiert. Hier ist ein Beispiel, wie du dies umsetzen kannst:

Sub SpeichernUnterMitDatum()
    Dim Datname As String
    Dim Pfad As String
    Dim AktuellesDatum As String
    AktuellesDatum = Format(Date, "yyyy-mm-dd")
    Pfad = Sheets("Start").Range("Q25").Value
    Datname = "Backup_" & AktuellesDatum & ".xlsm"
    ActiveWorkbook.SaveAs Pfad & Datname
End Sub

Dieses Makro speichert die Datei als "Backup_YYYY-MM-DD.xlsm", wobei YYYY-MM-DD das aktuelle Datum ist.


Tipps für Profis

  • Verwendung von Variablen: Definiere die Pfad- und Dateinamen-Variablen, um die Lesbarkeit und Wartbarkeit deines Codes zu erhöhen.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Situationen beim Speichern der Datei zu handhaben.
  • Automatisierung: Nutze das Makro in Kombination mit anderen VBA-Funktionen, um wiederkehrende Aufgaben zu automatisieren.

FAQ: Häufige Fragen

1. Wie kann ich den Speicherort dynamisch ändern?
Du kannst den Pfad in der Zelle Q25 ändern, um den Speicherort zu ändern. Das Skript verwendet immer den in der Zelle angegebenen Pfad.

2. Funktioniert das Makro in allen Excel-Versionen?
Das Makro sollte in den meisten modernen Excel-Versionen (Excel 2010 und höher) funktionieren, die VBA unterstützen.

3. Was mache ich, wenn ich keine Schreibrechte für den Zielordner habe?
Stelle sicher, dass du die notwendigen Berechtigungen für den angegebenen Ordner hast. Alternativ kannst du einen anderen Pfad wählen, für den du Schreibrechte hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige