Dateien speichern- Prüfung, ob die Dateien existieren
28.08.2024 23:42:12
Till
Ich habe eine Exceldatei mit mehreren Tabellenblättern. Mit Ausnahme der ersten drei Blätter möchte ich die anderen Tabellenblätter als einzelne Dateien im selben Verzeichnis speichern. mit Hilfe des nachfolgendes Codes, den ich im Internet gefunden habe, funktioniert das auch recht gut. Nun versuchte ich, eine Prüfung einzubauen, ob es die zu speichernden Tabellenblätter als Datei bereits gibt. Gibt es sie nicht, soll gespeichert werden. Gibt es sie bereits, soll abgefragt werden, ob die Datei überschrieben werden soll, oder nicht. Wenn ja, dann überschreiben/ speichern. Wenn nein, soll nichts mit der Datei geschehen und die nächste Datei geprüft werden.
Hier mein Code, der nicht das gewünschte Ergebnis liefert.
'-----------------------------------------------
'Blätter speichern
'-----------------------------------------------
Public Sub Blätter_speichern()
Dim ws As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Hinweise", "BVB Jahr", "Namensliste" 'ausgenommene Blätter
'nix machen
Case Else
ws.Copy
'Vergleich
'---------
Dim strDatei As String
strDatei = "#" & ws.Name & ".xlsx"
MsgBox "Der Name des aktuellen Worksheets lautet: " & ActiveSheet.Name, vbOKCancel + vbInformation, "Information"
If Dir(strDatei) = "" Then
ActiveSheet.SaveAs ThisWorkbook.Path & "\" & "#" & ws.Name & " " & "Urlaubsplan" & ".xlsx", FileFormat:=xlOpenXMLWorkbook
Else
'Select Case MsgBox("Datei bereits vorhanden. Überschreiben?", vbYesNo + vbQuestion)
Select Case MsgBox("Datei ist nicht vorhanden. Speichern?", vbYesNo + vbQuestion)
Case vbYes
ActiveSheet.SaveAs ThisWorkbook.Path & "\" & "#" & ws.Name & " " & "Urlaubsplan" & ".xlsx", FileFormat:=xlOpenXMLWorkbook
Case Else
End Select
End If
Application.DisplayAlerts = True
ActiveWorkbook.Close False
End Select
Next ws
End Sub
Ich würde mich über Hilfe sehr freuen, da ich bisher nicht weiter komme.
Vielen Dank und einen schönen Abend.
Anzeige