Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1248to1252
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - ActiveWorkbook.SaveAs

VBA - ActiveWorkbook.SaveAs
Daniel
Hallo, ich bin am verzweifeln!
Ich habe den Teil Activeworkbook.saveas möglichst variabel gestaltet, so dass die Datei sich automatisch in dem Ordner des aktuellen Monats ablegt über die Zelle "L1". Exisitert dieser jedoch nicht soll eine Schleife gefahren werden über die Msgbox.
Ist der Ordner da, läuft es gut. Datei wird gespeichert. Ist er nicht da erscheint die Message Box. Ich klicke auf ja und bleibe anschließend unter Speichern im folgenden Teil stecken:
ActiveWorkbook.SaveAs ("Desktop\1 - DAILY\" & Range("L1") & ".xlsx")
Anbei der Code
Sub Code
'hier werden nur Arbeitsblätter kopiert, Formeln gelöscht und in eine neue Datei kopiert anschließend soll gespeichert werden'
On Error GoTo Anzeige
ActiveWorkbook.SaveAs ("Desktop\1 - DAILY\" & Range("L1") & ".xlsx")
Exit Sub
Speichern:
On Error GoTo Anzeige
ActiveWorkbook.SaveAs ("Desktop\1 - DAILY\" & Range("L1") & ".xlsx")
Exit Sub
Anzeige:
Dim Response As Integer
' Displays a message box with the yes and no options.
Response = MsgBox(prompt:="Did you create the new folder on the drive for this month where the file can be saved ? 'Yes' or 'No'.", Buttons:=vbYesNo)
' If statement to check if the yes button was selected.
If Response = vbYes Then
GoTo Speichern
Else
' The no button was selected.
ThisWorkbook.Close False
End If
Tausend Dank

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

Betreff
Benutzer
Anzeige
AW: VBA - ActiveWorkbook.SaveAs
09.02.2012 20:46:32
Josef

Hallo Daniel,
lass doch VBA den Ordner für dich anlegen.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long

Sub saveMeAs()
  Dim strPath As String
  Dim lngRet As Long
  
  strPath = "Desktop\1 - DAILY\" & Range("L1") & ".xlsx"
  
  lngRet = MakeSureDirectoryPathExists(strPath)
  
  If lngRet <> 0 Then
    ThisWorkbook.SaveAs Filename:=strPath, FileFormat:=51
  Else
    MsgBox "Der Pfad '" & strPath & "' konnte nicht angelegt werden!", vbInformation, "Hinweis"
  End If
  
End Sub



« Gruß Sepp »

Anzeige
AW: VBA - ActiveWorkbook.SaveAs
10.02.2012 08:55:34
Daniel
Moin Sepp,
von der Idee her finde ich das gut. Ist jedoch so, dass mehrere Personen an der Datei arbeiten. Heißt habe ich jemanden dabei der "zufällig" das Datum dreht oder irgendetwas anderes einträgt kreeirt der Makro dann zig Ordner und das will ich vermeiden.
Also falls noch jemand eine Idee hat oder den Fehler sieht wäre ich dankbar
Daniel
AW: VBA - ActiveWorkbook.SaveAs
13.02.2012 15:18:47
fcs
Hallo Daniel,
Fehler 1:
Wenn du nach einem On Error goto SprungAdresse in die Prozedur zurückspringen möchtest, dann muss du mit Resume arbeiten, nicht mit GoTo.
Fehler 2:
In Verbindung mit SaveAs sollte möglichst das vollstänge Verzeichnis und der Dateiname als FileName-Parameter übergeben werden.
Gruß
Franz
Vorschlag für Makroanpassung:
Sub aaTest()
Dim Response As Long
'hier werden nur Arbeitsblätter kopiert, Formeln gelöscht und in eine neue _
Datei kopiert anschließend soll gespeichert werden'
On Error GoTo Anzeige
Speichern:
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "C:\Users\" & VBA.Environ("Username") _
& "\Desktop\" & Month(Date) & " - DAILY\" & Range("L1").Text & ".xlsx", _
xlOpenXMLWorkbook, addtomru:=True
Application.DisplayAlerts = True
Exit Sub
Anzeige:
' Displays a message box with the yes and no options.
Response = MsgBox(prompt:="Did you create the new folder " & vbLf _
& "C:\Users\" & VBA.Environ("Username") _
& "\Desktop\" & Month(Date) & " - DAILY" & vbLf _
& "on the drive for this month where the file can be saved ? 'Yes' or 'No'.", _
Buttons:=vbYesNo)
' If statement to check if the yes button was selected.
If Response = vbYes Then
Resume Speichern
Else
' The no button was selected.
ThisWorkbook.Close False
End If
End Sub

Anzeige

51 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige