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

Dateien speichern- Prüfung, ob die Dateien existieren

Forumthread: Dateien speichern- Prüfung, ob die Dateien existieren

Dateien speichern- Prüfung, ob die Dateien existieren
28.08.2024 23:42:12
Till
Hallo und guten Abend.

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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien speichern- Prüfung, ob die Dateien existieren
29.08.2024 00:27:49
Uduuh
Hallo,
versuchs mal mit
strDatei = ThisWorkbook.Path & "\" & "#" & ws.Name & " " & "Urlaubsplan" & ".xlsx"

If Dir(strDatei) = "" Then
ActiveWorkbook.SaveAs strDatei, FileFormat:=xlOpenXMLWorkbook
Else
If MsgBox("Datei ist bereits vorhanden. Speichern?", vbYesNo + vbQuestion) = vbYes Then
ActiveWorkbook.SaveAs strDatei, FileFormat:=xlOpenXMLWorkbook
End If
End If

Gruß aus'm Pott
Udo
Anzeige
AW: Dateien speichern- Prüfung, ob die Dateien existieren
29.08.2024 08:50:29
Till
Hallo Udo,

vielen Dank schon einmal. Heute nach der Arbeit werde ich deinen Tipp testen und dir dann Rückmeldung geben, ob er funktioniert hat.
Viele Grüße bis dahin.
AW: Dateien speichern- Prüfung, ob die Dateien existieren
29.08.2024 23:44:12
Till
Guten Abend, hallo Udo.

ich habe jetzt den Code von Udo getestet. Leider erhalte ich, wenn ich versuche die Datei zu speichern, wiederum eine Fehlermeldung. Deshalb habe ich jetzt nochmal die Ursprungsdatei hochgeladen. Es sind 4 Makros enthalten, die soweit gut funktionieren. Im zweiten Makro möchte ich wie gesagt die Prüfung einbauen, ob die Datei (Tabellenblatt) unter dem Namen bereits vorhanden ist, oder nicht, einschließlich der Frage, ob überschrieben werden soll oder nicht.

https://www.herber.de/bbs/user/171891.xlsb

Ich würde mich sehr freuen, wenn Udo oder auch Andere mir weiter helfen könnten.

Euch noch einen schönen Abend
Anzeige
AW: Dateien speichern- Prüfung, ob die Dateien existieren
30.08.2024 14:05:42
ralf_b
Public Sub Blätter_speichern()

Dim ws As Worksheet
Dim bolsave As Boolean
Dim spath$

Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Hinweise", "BVB Jahr", "Namensliste" 'ausgenommene Blätter
'nix machen
Case Else
bolsave =false
spath = ThisWorkbook.Path & "\#" & ws.Name & " Urlaubsplan.xlsx"
If Dir(spath) > "" Then
If vbYes = MsgBox("Vorhandene Datei überscheiben?", vbYesNo + vbCritical + vbDefaultButton2, "Warnung") Then bolsave = True
Else
bolsave = True
End If

If bolsave Then
ws.Copy
Application.DisplayAlerts = False
ActiveSheet.SaveAs spath, FileFormat:=xlOpenXMLWorkbook
Application.DisplayAlerts = True
ActiveWorkbook.Close False
End If
End Select
Next ws
End Sub
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige