wenn eine Excel Datei geöffnet wird, dann soll abgefragt werden ob der Ordnername in dem sich die Datei befindet z.B. Test heißt. Wenn nicht, dann soll diese ExcelDatei gelöscht werden.
Hat jemand dafür ein Makro.
Danke im voraus!
MFG Andre
Sub Datloesch()
Application.DisplayAlerts = False
ActiveWorkbook.ChangeFileAccess xlReadOnly
Kill ActiveWorkbook.FullName
Application.DisplayAlerts = True
ThisWorkbook.Close False
End Sub
Grüße Orakel
Sub Datloesch()
If ActiveWorkbook.Path = "D:\Test" Then
GoTo Ende
Else
Application.DisplayAlerts = False
ActiveWorkbook.ChangeFileAccess xlReadOnly
Kill ActiveWorkbook.FullName
Application.DisplayAlerts = True
ThisWorkbook.Close False
End If
Ende:
End Sub
Um eine Excel-Datei zu löschen, wenn der Ordnername nicht dem gewünschten Namen entspricht, kannst Du folgendes VBA-Makro verwenden. Dieses Makro überprüft den Pfad der geöffneten Datei und schließt sie, wenn der Ordnername nicht "Test" ist. Danach wird die Datei gelöscht.
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Klicke auf Einfügen
und wähle Modul
, um ein neues Modul zu erstellen.
Füge den folgenden Code in das Modul ein:
Sub Datloesch()
If ActiveWorkbook.Path = "D:\Test" Then
GoTo Ende
Else
Application.DisplayAlerts = False
ActiveWorkbook.ChangeFileAccess xlReadOnly
Kill ActiveWorkbook.FullName
Application.DisplayAlerts = True
ThisWorkbook.Close False
End If
Ende:
End Sub
Schließe den VBA-Editor und speichere die Datei als Makro-aktivierte Arbeitsmappe (*.xlsm).
Aktiviere die Makros, wenn Du die Datei öffnest.
Fehler: Excel-Datei kann nicht gelöscht werden.
Fehler: Makros sind deaktiviert.
Fehler: Pfad stimmt nicht.
Wenn Du Dateien in Access verwalten möchtest, kannst Du auch VBA für Access nutzen, um eine Datei zu löschen, falls sie nicht in einem bestimmten Verzeichnis ist:
Sub AccessDatloesch()
If CurrentProject.Path <> "C:\DeinPfad" Then
Kill "C:\DeinPfad\DeineDatei.accdb"
End If
End Sub
Diese Methode funktioniert ähnlich wie die Excel-Methode. Achte darauf, dass die Datei nicht geöffnet ist.
Angenommen, Du hast eine Datei in "D:\Test" und möchtest sicherstellen, dass sie nur aus diesem Ordner geöffnet und bearbeitet wird. Wenn jemand versucht, die Datei von einem anderen Ort zu öffnen, wird sie gelöscht. Dies ist besonders nützlich in Unternehmensumgebungen, um unautorisierte Zugriffe zu vermeiden.
Application.DisplayAlerts = False
, um Warnmeldungen zu unterdrücken, wenn Du eine Datei löschst. Dies macht den Prozess reibungsloser.1. Kann ich eine geöffnete Datei mit VBA löschen?
Das Löschen einer geöffneten Datei ist nicht möglich. Du musst die Datei zuerst schließen, um sie mit Kill
zu löschen.
2. Was passiert, wenn die Datei nicht gefunden wird? Wenn die Datei nicht vorhanden ist, gibt es einen Laufzeitfehler. Du kannst Fehlerbehandlung in Deinen Code einfügen, um dies zu vermeiden.
3. Wie kann ich sicherstellen, dass Makros aktiviert sind? Du kannst unter „Datei“ > „Optionen“ > „Trust Center“ > „Einstellungen für das Trust Center“ die Makros aktivieren. Stelle sicher, dass die Einstellung „Alle Makros aktivieren“ ausgewählt ist.
4. Funktioniert dieses Makro auch in Access? Ja, ähnliche Logik kann auch in Access verwendet werden, um eine Datei zu löschen, wenn sie nicht im gewünschten Verzeichnis liegt.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen